{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "cell_execution_strategy": "setup",
      "provenance": [],
      "toc_visible": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "578d5e477cef4f7e9909ca2af66b2d9f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_f65de9d4dfb2448f8b7e395a3fb33ed1",
              "IPY_MODEL_d2f06c7150ff45a8871fedeabcf775c4",
              "IPY_MODEL_e004bcfcb573474b930c54e5cad1e441"
            ],
            "layout": "IPY_MODEL_302e933f789c408dbc6cb72a711a31c5"
          }
        },
        "f65de9d4dfb2448f8b7e395a3fb33ed1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_ccbfe62f7e494363a1002d45e0df8d12",
            "placeholder": "​",
            "style": "IPY_MODEL_fccf6a45d3f741d98be0539c478b0604",
            "value": "Job ID 5fbac772-1352-4090-8a9c-7abbd7ff3247 successfully executed: 100%"
          }
        },
        "d2f06c7150ff45a8871fedeabcf775c4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_3d368a21cfe644fa89a585c2b9593379",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_51481b8887984f88a9551998337c9366",
            "value": 1
          }
        },
        "e004bcfcb573474b930c54e5cad1e441": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_20642767ae1b44ecb5f277ca11efbf49",
            "placeholder": "​",
            "style": "IPY_MODEL_3c11c01550cf48afbe41917a991e4177",
            "value": ""
          }
        },
        "302e933f789c408dbc6cb72a711a31c5": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ccbfe62f7e494363a1002d45e0df8d12": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "fccf6a45d3f741d98be0539c478b0604": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "3d368a21cfe644fa89a585c2b9593379": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "51481b8887984f88a9551998337c9366": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "20642767ae1b44ecb5f277ca11efbf49": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3c11c01550cf48afbe41917a991e4177": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "9989aad1fc30488dbd2e8cff3602f20c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_e1f6b0d9ca74469e9f4a1dfcb07f4a7a",
              "IPY_MODEL_067bcd384acb4b8b9f0275c89ca0fbf5",
              "IPY_MODEL_7c7a5b83e20c4a3fac12a96af6bdb574"
            ],
            "layout": "IPY_MODEL_7aba77417ccd4fb7a1dac023b08cefec"
          }
        },
        "e1f6b0d9ca74469e9f4a1dfcb07f4a7a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d7894b6a6f11471f8b1d7813f29434fa",
            "placeholder": "​",
            "style": "IPY_MODEL_01c870221af748599b4342f83bb15cea",
            "value": "Downloading: 100%"
          }
        },
        "067bcd384acb4b8b9f0275c89ca0fbf5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_93c3798383264d629cff2ce61bfedd81",
            "max": 10,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_8a0c2776b686472690c81597cf1e483f",
            "value": 10
          }
        },
        "7c7a5b83e20c4a3fac12a96af6bdb574": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_9b4cafbac218439295dfe5a270095e5e",
            "placeholder": "​",
            "style": "IPY_MODEL_612daab6332d412eaf5e442377b51fb6",
            "value": ""
          }
        },
        "7aba77417ccd4fb7a1dac023b08cefec": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d7894b6a6f11471f8b1d7813f29434fa": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "01c870221af748599b4342f83bb15cea": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "93c3798383264d629cff2ce61bfedd81": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "8a0c2776b686472690c81597cf1e483f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "9b4cafbac218439295dfe5a270095e5e": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "612daab6332d412eaf5e442377b51fb6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "99707561a6d34acc8800d75a084c4d36": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_f10fed5068844c04a9e9b60f3b0e6fdb",
              "IPY_MODEL_1a7f3aa4754f419ca3ad8ee8c3cba7b4",
              "IPY_MODEL_a18039f43cec4d2e9fcd8baa9020c60b"
            ],
            "layout": "IPY_MODEL_fd495892b4cc4af6a2b113f39a252abb"
          }
        },
        "f10fed5068844c04a9e9b60f3b0e6fdb": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_25a53ac41afe4d3a96cd1ed79fabe0ba",
            "placeholder": "​",
            "style": "IPY_MODEL_b9886d4b87574ba18fb3b28dbf5732af",
            "value": "Job ID 19d56364-f127-4a02-89ed-450c21c0fcf1 successfully executed: 100%"
          }
        },
        "1a7f3aa4754f419ca3ad8ee8c3cba7b4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_dec31b4d035b46b28d09dc2d4d6b97a7",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_1fafd8886fc548bca8641873356ebc63",
            "value": 1
          }
        },
        "a18039f43cec4d2e9fcd8baa9020c60b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_4c96499613094fe58904ee13d03ce334",
            "placeholder": "​",
            "style": "IPY_MODEL_1008e01358434c27b1fd12d8bf8fdcf4",
            "value": ""
          }
        },
        "fd495892b4cc4af6a2b113f39a252abb": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "25a53ac41afe4d3a96cd1ed79fabe0ba": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b9886d4b87574ba18fb3b28dbf5732af": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "dec31b4d035b46b28d09dc2d4d6b97a7": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "1fafd8886fc548bca8641873356ebc63": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "4c96499613094fe58904ee13d03ce334": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "1008e01358434c27b1fd12d8bf8fdcf4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "bedb0f2f8fc54563bf04df8dbab30b65": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_7ad67ff235414bf7b9e4157730941d93",
              "IPY_MODEL_b42c4ede23344c7680095de2fff5e96d",
              "IPY_MODEL_d23b2216265b49fc86402ad122c7aa0f"
            ],
            "layout": "IPY_MODEL_11801d21afbd4b548fd5ace58e90b269"
          }
        },
        "7ad67ff235414bf7b9e4157730941d93": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_694fb4cd771b4ec5af89564ddb3d3ba4",
            "placeholder": "​",
            "style": "IPY_MODEL_3a13939560154585b18b7d7eb2bc66fb",
            "value": "Downloading: 100%"
          }
        },
        "b42c4ede23344c7680095de2fff5e96d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b03e89e49b7d4da8a40bd5ae82b7da2b",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_5bc16737e3114f9a8a30cf1670fc38eb",
            "value": 1
          }
        },
        "d23b2216265b49fc86402ad122c7aa0f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_3567ab919acb44e68c02b760b6313588",
            "placeholder": "​",
            "style": "IPY_MODEL_a8be411abfd749899746bceec0f9790c",
            "value": ""
          }
        },
        "11801d21afbd4b548fd5ace58e90b269": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "694fb4cd771b4ec5af89564ddb3d3ba4": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3a13939560154585b18b7d7eb2bc66fb": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "b03e89e49b7d4da8a40bd5ae82b7da2b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "5bc16737e3114f9a8a30cf1670fc38eb": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "3567ab919acb44e68c02b760b6313588": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a8be411abfd749899746bceec0f9790c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "bafc31610b1141c3831ba4271f94dce1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_dc6d86b19b604ebb847a86abf082d8d1",
              "IPY_MODEL_f35ca264735f48a5953210e50fad7fc3",
              "IPY_MODEL_e1e33f0cd61c4806a43c2c89e15e753c"
            ],
            "layout": "IPY_MODEL_fbc15ecf68374e11850cab1c241d1535"
          }
        },
        "dc6d86b19b604ebb847a86abf082d8d1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_2bf27b93bcbf442996c8f53b5acec11f",
            "placeholder": "​",
            "style": "IPY_MODEL_8d7f67d5143e474a945be44d9c1a4c12",
            "value": "Job ID 7a424387-8dec-45c9-a165-974cdb2d7018 successfully executed: 100%"
          }
        },
        "f35ca264735f48a5953210e50fad7fc3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c8344fbceeac4388b0cc0497b65b42d3",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_c3c2c6fa24684a8a8c4b389f7fa7159a",
            "value": 1
          }
        },
        "e1e33f0cd61c4806a43c2c89e15e753c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_254e0a9ddeb24a0e99d9c435a8ecf8be",
            "placeholder": "​",
            "style": "IPY_MODEL_fb40c287dd914751a6d4249f3498ccf3",
            "value": ""
          }
        },
        "fbc15ecf68374e11850cab1c241d1535": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "2bf27b93bcbf442996c8f53b5acec11f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "8d7f67d5143e474a945be44d9c1a4c12": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "c8344fbceeac4388b0cc0497b65b42d3": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "c3c2c6fa24684a8a8c4b389f7fa7159a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "254e0a9ddeb24a0e99d9c435a8ecf8be": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "fb40c287dd914751a6d4249f3498ccf3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "b65da579819f4a8aa74467aaa214d09e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_0f0b282a01dc4ea7b6134385ef470d62",
              "IPY_MODEL_40fb9b5f677c44a1980b06d1131fd016",
              "IPY_MODEL_bfdd9e04030e48c2a1569230bc7fa0b8"
            ],
            "layout": "IPY_MODEL_0b36433f9ec84df7822c1423adf6c111"
          }
        },
        "0f0b282a01dc4ea7b6134385ef470d62": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b87a8ae562fa483288c7722e635dcb18",
            "placeholder": "​",
            "style": "IPY_MODEL_885b3f13aebb43c7b347789e1145bcf1",
            "value": "Downloading: 100%"
          }
        },
        "40fb9b5f677c44a1980b06d1131fd016": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d978de3f34944527979d7944cd08e143",
            "max": 10,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_16c971f878054e7fac0a0a5a35ca0bf8",
            "value": 10
          }
        },
        "bfdd9e04030e48c2a1569230bc7fa0b8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d4b9b8800caa4ac8b2e3522cc72fc6b3",
            "placeholder": "​",
            "style": "IPY_MODEL_1d581673f082499696e8edbc09b3645c",
            "value": ""
          }
        },
        "0b36433f9ec84df7822c1423adf6c111": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b87a8ae562fa483288c7722e635dcb18": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "885b3f13aebb43c7b347789e1145bcf1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "d978de3f34944527979d7944cd08e143": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "16c971f878054e7fac0a0a5a35ca0bf8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "d4b9b8800caa4ac8b2e3522cc72fc6b3": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "1d581673f082499696e8edbc09b3645c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "3ecad9020670434fbe1ae88e5206cf11": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_a3a971cae2e14820b994ab0e3bb9fd44",
              "IPY_MODEL_89087801195046f4beec4411ffb827b9",
              "IPY_MODEL_06961d54963b48eb863b70a1b58acbf1"
            ],
            "layout": "IPY_MODEL_cfabb1ac989942f9b0deb370e2e8d4ea"
          }
        },
        "a3a971cae2e14820b994ab0e3bb9fd44": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_2849980ebd74409e9d8716142db35e3d",
            "placeholder": "​",
            "style": "IPY_MODEL_aa6f81754886428390828fbc694abeab",
            "value": "Job ID db8cbc1c-49ac-4d37-8ab5-f956ae12cb74 successfully executed: 100%"
          }
        },
        "89087801195046f4beec4411ffb827b9": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_87ce14746f5b498d8c5948087a26c46d",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_4edab970f48f4a0383e674a34597b979",
            "value": 1
          }
        },
        "06961d54963b48eb863b70a1b58acbf1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a473d53050534b2a85579b4b13b17ea1",
            "placeholder": "​",
            "style": "IPY_MODEL_b88d5b13191243ae8ed36f7a953856e8",
            "value": ""
          }
        },
        "cfabb1ac989942f9b0deb370e2e8d4ea": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "2849980ebd74409e9d8716142db35e3d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "aa6f81754886428390828fbc694abeab": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "87ce14746f5b498d8c5948087a26c46d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "4edab970f48f4a0383e674a34597b979": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "a473d53050534b2a85579b4b13b17ea1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b88d5b13191243ae8ed36f7a953856e8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "59fa3fb0d8ad43979c17b22ff1ac028d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_ad8bc1a29cc64eef833fa8b82cef92d6",
              "IPY_MODEL_84552489c9164723a44f0554c2d35487",
              "IPY_MODEL_f756972fbffc479db05d001deab3335a"
            ],
            "layout": "IPY_MODEL_60a1c4a8b38245f0a7f34b8293e29d05"
          }
        },
        "ad8bc1a29cc64eef833fa8b82cef92d6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_32bb796cebd144818909c68142975224",
            "placeholder": "​",
            "style": "IPY_MODEL_7bfc5e3ec86e4a429d5f1bcaa70a4391",
            "value": "Job ID abf3310f-9b36-43aa-a823-70853c6e4a63 successfully executed: 100%"
          }
        },
        "84552489c9164723a44f0554c2d35487": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_954ff75fa65f42d7965cdca82443a100",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_9ca76d9a42704683a5c568632804558a",
            "value": 1
          }
        },
        "f756972fbffc479db05d001deab3335a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_6579dfa29da14e3b91a59eae5fbaca17",
            "placeholder": "​",
            "style": "IPY_MODEL_985058b61696475eb3c561bac2812fb1",
            "value": ""
          }
        },
        "60a1c4a8b38245f0a7f34b8293e29d05": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "32bb796cebd144818909c68142975224": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7bfc5e3ec86e4a429d5f1bcaa70a4391": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "954ff75fa65f42d7965cdca82443a100": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "9ca76d9a42704683a5c568632804558a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "6579dfa29da14e3b91a59eae5fbaca17": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "985058b61696475eb3c561bac2812fb1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "f564c212f95247c197187eebd1e01084": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_a26f39da170046e0a9cc8a5cccf018ca",
              "IPY_MODEL_0c44cbf2e18749f5b2615286adf5427e",
              "IPY_MODEL_b33a295ab079427f9b267a22fa6656f7"
            ],
            "layout": "IPY_MODEL_322f760fe0eb47a687b1c56771182e30"
          }
        },
        "a26f39da170046e0a9cc8a5cccf018ca": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_3117566071874bfa8fddb10969691378",
            "placeholder": "​",
            "style": "IPY_MODEL_44464c0654784d42a1c088bf2dc961dd",
            "value": "Downloading: 100%"
          }
        },
        "0c44cbf2e18749f5b2615286adf5427e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_83333d8094464eb89e47effb01c013c6",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_a4208c8948374c2a846e9c04ee8526ff",
            "value": 1
          }
        },
        "b33a295ab079427f9b267a22fa6656f7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c0d5cad173d14990bc2c3ae43f61ee3a",
            "placeholder": "​",
            "style": "IPY_MODEL_d24c284f434043e99b261e6bf17e3f4a",
            "value": ""
          }
        },
        "322f760fe0eb47a687b1c56771182e30": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3117566071874bfa8fddb10969691378": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "44464c0654784d42a1c088bf2dc961dd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "83333d8094464eb89e47effb01c013c6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a4208c8948374c2a846e9c04ee8526ff": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "c0d5cad173d14990bc2c3ae43f61ee3a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d24c284f434043e99b261e6bf17e3f4a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "e231ca63bf1c4ad28a116e8986116b08": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_31a616a3e4c34e72aceafcf415e79c9a",
              "IPY_MODEL_06c4d4c8e7804c60b07881a842d1c0b7",
              "IPY_MODEL_aea1c9f2d78e40a6b39af7fccb2a33c6"
            ],
            "layout": "IPY_MODEL_e01ed1c6ca2a411d9365ae88317814b3"
          }
        },
        "31a616a3e4c34e72aceafcf415e79c9a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c8633614fa7e4d638e9960690f32cd62",
            "placeholder": "​",
            "style": "IPY_MODEL_88f3fe82dd874f49960339b0421ce6ef",
            "value": "Job ID 79966f10-83c6-41e0-a6e2-146bb37ac039 successfully executed: 100%"
          }
        },
        "06c4d4c8e7804c60b07881a842d1c0b7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c85328ffcea24013aa056a0d799b3159",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_d328499931b84bce9bd64394ac974b4c",
            "value": 1
          }
        },
        "aea1c9f2d78e40a6b39af7fccb2a33c6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_aeed64bff8c74bd486f09f365fc3ad85",
            "placeholder": "​",
            "style": "IPY_MODEL_d7e5d95da3014409b6ad6702b5190f73",
            "value": ""
          }
        },
        "e01ed1c6ca2a411d9365ae88317814b3": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "c8633614fa7e4d638e9960690f32cd62": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "88f3fe82dd874f49960339b0421ce6ef": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "c85328ffcea24013aa056a0d799b3159": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d328499931b84bce9bd64394ac974b4c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "aeed64bff8c74bd486f09f365fc3ad85": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d7e5d95da3014409b6ad6702b5190f73": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "be0d01e7de564ce8a0360ce99b8eaed8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_b3eef97efcb64678a121ca896ecb14d3",
              "IPY_MODEL_5d9f90fc2a5a489b90666e5ef88d533a",
              "IPY_MODEL_b0695cdea95844be973ed49f28d0f240"
            ],
            "layout": "IPY_MODEL_84a609a326134f9fa040e8b60c8bfa6c"
          }
        },
        "b3eef97efcb64678a121ca896ecb14d3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_f6fedb1725c94feb90ea1127b559f2a5",
            "placeholder": "​",
            "style": "IPY_MODEL_19ffdfd7f3a84bfca5ea1f0523e5a4b4",
            "value": "Downloading: 100%"
          }
        },
        "5d9f90fc2a5a489b90666e5ef88d533a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_998d89b03b404320a2e810367a4b0db3",
            "max": 10,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_2619083f07c44caebbb192c27cc93128",
            "value": 10
          }
        },
        "b0695cdea95844be973ed49f28d0f240": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_eb4811d70e1241d1897dd7d125e2b7b2",
            "placeholder": "​",
            "style": "IPY_MODEL_fe73f1f520b44e95af849288dbc9b703",
            "value": ""
          }
        },
        "84a609a326134f9fa040e8b60c8bfa6c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f6fedb1725c94feb90ea1127b559f2a5": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "19ffdfd7f3a84bfca5ea1f0523e5a4b4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "998d89b03b404320a2e810367a4b0db3": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "2619083f07c44caebbb192c27cc93128": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "eb4811d70e1241d1897dd7d125e2b7b2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "fe73f1f520b44e95af849288dbc9b703": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "995b3c9dc69a4be5b02934f096d223e7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_8deb529d72834e2aa6aacf59ce476f8a",
              "IPY_MODEL_702825fe1b184861b5abfac1f1cdfcc6",
              "IPY_MODEL_b4c941a0f5774e7fb9c3a718d9a46713"
            ],
            "layout": "IPY_MODEL_de684ecc4a304aeba4e3eb771f7fe017"
          }
        },
        "8deb529d72834e2aa6aacf59ce476f8a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_6b4462d4da6a417a9de9780b7ca12332",
            "placeholder": "​",
            "style": "IPY_MODEL_687bd5d50d974fcba2881a6d166c039d",
            "value": "Job ID ef8f2e1e-3a5d-4e6b-8994-5168173a1d1f successfully executed: 100%"
          }
        },
        "702825fe1b184861b5abfac1f1cdfcc6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_20898cceb9c3415ebc78bf30a0cb4e34",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_3d1629af7c534fd19ff1e20b9213e387",
            "value": 1
          }
        },
        "b4c941a0f5774e7fb9c3a718d9a46713": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_752eab240f444c528c60ae21e19fb62c",
            "placeholder": "​",
            "style": "IPY_MODEL_d32ebef7dd5a47a8a34a7b21930a4d1a",
            "value": ""
          }
        },
        "de684ecc4a304aeba4e3eb771f7fe017": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "6b4462d4da6a417a9de9780b7ca12332": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "687bd5d50d974fcba2881a6d166c039d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "20898cceb9c3415ebc78bf30a0cb4e34": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3d1629af7c534fd19ff1e20b9213e387": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "752eab240f444c528c60ae21e19fb62c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d32ebef7dd5a47a8a34a7b21930a4d1a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "3d3cd4a99f7b4680a96a315b1878f93f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_39605328bf3245889d3c9125248f89d5",
              "IPY_MODEL_eb196aae073145f794b30834a66b95b9",
              "IPY_MODEL_4d7df40fa5f349d9b5e5b649552dc47c"
            ],
            "layout": "IPY_MODEL_4d4932b02db44380b2bbe1a0a9f48692"
          }
        },
        "39605328bf3245889d3c9125248f89d5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c4a4590269a246fdb7e984d30c1fc8f9",
            "placeholder": "​",
            "style": "IPY_MODEL_6426c668ea994a01a7f66fa5787eca05",
            "value": "Downloading: 100%"
          }
        },
        "eb196aae073145f794b30834a66b95b9": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_8ac746a8457d463ca403b0c3546d8c9a",
            "max": 10,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_abf73e21f9ad4595a2bc62cebfd3a7c0",
            "value": 10
          }
        },
        "4d7df40fa5f349d9b5e5b649552dc47c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_08abdd3ae52644cebdd1ce4c327c3cab",
            "placeholder": "​",
            "style": "IPY_MODEL_c71338ef552147e4a1f77b2e72e3dce7",
            "value": ""
          }
        },
        "4d4932b02db44380b2bbe1a0a9f48692": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "c4a4590269a246fdb7e984d30c1fc8f9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "6426c668ea994a01a7f66fa5787eca05": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "8ac746a8457d463ca403b0c3546d8c9a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "abf73e21f9ad4595a2bc62cebfd3a7c0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "08abdd3ae52644cebdd1ce4c327c3cab": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "c71338ef552147e4a1f77b2e72e3dce7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "5e5b99c3c05d4695bcec5e707a98f96e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_c7d6c8a6d0874d41984869101d2a174c",
              "IPY_MODEL_0237eb0cbbf74dd083b3cb99cdde0893",
              "IPY_MODEL_cc22edea9f1948f9ac763529b1dd4744"
            ],
            "layout": "IPY_MODEL_7053184f69584b79808f01ceec358199"
          }
        },
        "c7d6c8a6d0874d41984869101d2a174c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a7a50da4b1a5427892a34da539d0d280",
            "placeholder": "​",
            "style": "IPY_MODEL_7023b60802ba489bbfa47ff3bd6c9993",
            "value": "Job ID 519b73ed-87c4-43aa-ae25-1a8d249b16eb successfully executed: 100%"
          }
        },
        "0237eb0cbbf74dd083b3cb99cdde0893": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_9ccca867bc304112b72036b16120ac9d",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_b6e8e4bedf7b49bf90ea6b084d09229f",
            "value": 1
          }
        },
        "cc22edea9f1948f9ac763529b1dd4744": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b04bea9ec98745fea673260322183507",
            "placeholder": "​",
            "style": "IPY_MODEL_16da988076f943128e35a5cd0f281217",
            "value": ""
          }
        },
        "7053184f69584b79808f01ceec358199": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a7a50da4b1a5427892a34da539d0d280": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7023b60802ba489bbfa47ff3bd6c9993": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "9ccca867bc304112b72036b16120ac9d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b6e8e4bedf7b49bf90ea6b084d09229f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "b04bea9ec98745fea673260322183507": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "16da988076f943128e35a5cd0f281217": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "f4d48e03913d406a92abee3a9f166afa": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_6f0ee088f4944e9780ced95a818a9583",
              "IPY_MODEL_95149f8127b24a88ae4e56552c24edca",
              "IPY_MODEL_2043df89941b4ff49d9bc54f1ddc742d"
            ],
            "layout": "IPY_MODEL_5bf5025d914f435588834c5cadecd59d"
          }
        },
        "6f0ee088f4944e9780ced95a818a9583": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_66b08021e418420fac36d7f4ca40aa70",
            "placeholder": "​",
            "style": "IPY_MODEL_3615882fe7704e26ae08c686b892e958",
            "value": "Downloading: 100%"
          }
        },
        "95149f8127b24a88ae4e56552c24edca": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_9311eeb06cbf4cda8234b30564214ace",
            "max": 4,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_7ae4a05609ce451295b6ec514a72bb02",
            "value": 4
          }
        },
        "2043df89941b4ff49d9bc54f1ddc742d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_7ca757a5b49c4eab976dba82ee487758",
            "placeholder": "​",
            "style": "IPY_MODEL_6a250e180c404464b3d291511337b32d",
            "value": ""
          }
        },
        "5bf5025d914f435588834c5cadecd59d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "66b08021e418420fac36d7f4ca40aa70": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3615882fe7704e26ae08c686b892e958": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "9311eeb06cbf4cda8234b30564214ace": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7ae4a05609ce451295b6ec514a72bb02": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "7ca757a5b49c4eab976dba82ee487758": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "6a250e180c404464b3d291511337b32d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        }
      }
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "Copyright 2025 Google LLC.\n",
        "\n",
        "Licensed under the Apache License, Version 2.0 (the \"License\");"
      ],
      "metadata": {
        "id": "USGLCOwyFaXe"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "#@title License\n",
        "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
        "# you may not use this file except in compliance with the License.\n",
        "# You may obtain a copy of the License at\n",
        "#\n",
        "# https://www.apache.org/licenses/LICENSE-2.0\n",
        "#\n",
        "# Unless required by applicable law or agreed to in writing, software\n",
        "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
        "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
        "# See the License for the specific language governing permissions and\n",
        "# limitations under the License."
      ],
      "metadata": {
        "cellView": "form",
        "id": "n3jrZlPzF_5L"
      },
      "execution_count": 94,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [],
      "metadata": {
        "id": "xdrRqfs_1Fwu"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Calculating TopN file extensions in Git repos from public Github Dataset\n",
        "\n",
        "<table align=\"left\">\n",
        "  <td style=\"text-align: center\">\n",
        "    <a href=\"https://colab.research.google.com/github/GoogleCloudPlatform/bigquery-utils/blob/master/notebooks/bigquery_frequent_items_sketches_demo.ipynb\">\n",
        "      <img width=\"32px\" src=\"https://www.gstatic.com/pantheon/images/bigquery/welcome_page/colab-logo.svg\" alt=\"Google Colaboratory logo\"><br> Open in Colab\n",
        "    </a>\n",
        "  </td>\n",
        "  <td style=\"text-align: center\">\n",
        "    <a href=\"https://console.cloud.google.com/vertex-ai/colab/import/https:%2F%2Fraw.githubusercontent.com%2FGoogleCloudPlatform%2Fbigquery-utils%2Fmaster%2Fnotebooks%2bigquery_frequent_items_sketches_demo.ipynb\">\n",
        "      <img width=\"32px\" src=\"https://lh3.googleusercontent.com/JmcxdQi-qOpctIvWKgPtrzZdJJK-J3sWE1RsfjZNwshCFgE_9fULcNpuXYTilIR2hjwN\" alt=\"Google Cloud Colab Enterprise logo\"><br> Open in Colab Enterprise\n",
        "    </a>\n",
        "  </td>\n",
        "  <td style=\"text-align: center\">\n",
        "    <a href=\"https://console.cloud.google.com/bigquery/import?url=https://github.com/GoogleCloudPlatform/bigquery-utils/blob/master/notebooks/bigquery_frequent_items_sketches_demo.ipynb\">\n",
        "      <img src=\"https://www.gstatic.com/images/branding/gcpiconscolors/bigquery/v1/32px.svg\" alt=\"BigQuery Studio logo\"><br> Open in BigQuery Studio\n",
        "    </a>\n",
        "  </td>\n",
        "  <td style=\"text-align: center\">\n",
        "    <a href=\"https://github.com/GoogleCloudPlatform/bigquery-utils/blob/master/notebooks/bigquery_frequent_items_sketches_demo.ipynb\">\n",
        "      <img width=\"32px\" src=\"https://upload.wikimedia.org/wikipedia/commons/9/91/Octicons-mark-github.svg\" alt=\"GitHub logo\"><br> View on GitHub\n",
        "    </a>\n",
        "  </td>\n",
        "</table>    \n",
        "\n",
        "<div style=\"clear: both;\"></div>"
      ],
      "metadata": {
        "id": "MMw76QjO6Kzx"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "| | |\n",
        "|-|-|\n",
        "| Author |  [Nikunj Bhartia](https://github.com/nikunjbhartia)"
      ],
      "metadata": {
        "id": "gndL-wsgtjKt"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Demo Overview\n",
        "- Data prep\n",
        "- Frequent Items (FI) Sketch Creation\n",
        "   - Using BQ JS UDAF\n",
        "   - The JS UD(A)Fs are loaded with OSS Datasketch FI sketch cpp library compiled to webassembly and published in all regional BQ public datasets\n",
        "- Extracting TopN file extensions :\n",
        "  1. Exact using `GROUP BY` & `COUNT()`\n",
        "  2. Approx, with FI sketch support, using BQ JS UDAF\n",
        "\n",
        "- Compare Results\n",
        "- Compare query stats\n"
      ],
      "metadata": {
        "id": "hJeKNmVE8GE_"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Setup"
      ],
      "metadata": {
        "id": "5l7OKgjapdJQ"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "#@title Provide Google Credentials to Colab Runtime (May Require Manually Copy/Pasting Authentication Code)\n",
        "from google.colab import auth\n",
        "auth.authenticate_user()\n",
        "print('Authenticated')"
      ],
      "metadata": {
        "id": "UnLdVJZ89Bkn",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "4f30535b-749f-4b22-9a0f-e747f8d725ac"
      },
      "execution_count": 95,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Authenticated\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#@title Enter Google Cloud/BigQuery Project ID for demo\n",
        "project_id = '' #@param{type:\"string\"}\n",
        "\n",
        "# Package used for interfacing w/ BigQuery from Python\n",
        "from google.cloud import bigquery\n",
        "\n",
        "# Create BigQuery client\n",
        "bq_client = bigquery.Client(project = project_id)"
      ],
      "metadata": {
        "id": "5YQ_ejGs8jRh"
      },
      "execution_count": 96,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "#@title Function to plot query stats comparision charts\n",
        "import pandas as pd\n",
        "import matplotlib.pyplot as plt\n",
        "import numpy as np\n",
        "from matplotlib.font_manager import FontProperties\n",
        "\n",
        "def plot_query_metrics(df, prefix_list):\n",
        "    # Filter dataframe based on query_tag prefixes\n",
        "    filtered_df = df[df['query_tag'].str.startswith(tuple(prefix_list))]\n",
        "\n",
        "    # Create figure with 3 subplots in a single row\n",
        "    fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(20, 6))  # Increased width to stretch horizontally\n",
        "\n",
        "    # Define bar width and positions\n",
        "    bar_width = 0.5  # Width of each bar\n",
        "    bar_positions = np.arange(len(filtered_df['query_tag']))  # Positions for bars (e.g., [0, 1])\n",
        "\n",
        "    # Dynamically generate color_map based on prefix_list\n",
        "    # Use a color palette (e.g., tab10 has 10 distinct colors)\n",
        "    # https://matplotlib.org/stable/users/explain/colors/colormaps.html#qualitative\n",
        "    color_palette = plt.cm.tab10(np.linspace(0, 1, len(prefix_list)))  # Generate colors for each prefix\n",
        "    color_map = {prefix: color_palette[i] for i, prefix in enumerate(prefix_list)}\n",
        "\n",
        "    # Create colors list using prefix match\n",
        "    colors = [color_map[next(key for key in color_map.keys() if tag.startswith(key))]\n",
        "              for tag in filtered_df['query_tag']]\n",
        "\n",
        "    # Plot 1: Total Slot Seconds\n",
        "    bars1 = ax1.bar(bar_positions, filtered_df['total_slot_sec'], color=colors, width=bar_width,\n",
        "                    label=filtered_df['query_tag'])  # Add labels for legend\n",
        "    ax1.set_yscale('log')  # Use logarithmic scale for y-axis\n",
        "    ax1.set_title('Total Slot Seconds by Query Tag')\n",
        "    ax1.set_ylabel('Slot Seconds')\n",
        "    ax1.set_xticks([])  # Remove x-axis ticks\n",
        "    ax1.set_xticklabels([])  # Remove x-axis labels\n",
        "    ax1.grid(True, alpha=0.3, which=\"both\")  # Grid for both major and minor ticks on log scale\n",
        "    # Add exact values on bars\n",
        "    for bar in bars1:\n",
        "        height = bar.get_height()\n",
        "        ax1.text(bar.get_x() + bar.get_width() / 2, height * 1.1,  # 1.1 for slight offset above bar\n",
        "                 f'{height:.2f}', ha='center', va='bottom')\n",
        "    # Increase y-axis limit to create space for text\n",
        "    max_slot_sec = max(filtered_df['total_slot_sec'])\n",
        "    ax1.set_ylim(top=max_slot_sec * 2)  # Double the max value to create headroom\n",
        "\n",
        "    # Plot 2: Total Execution Time in Seconds\n",
        "    bars2 = ax2.bar(bar_positions, filtered_df['total_time_sec'], color=colors, width=bar_width,\n",
        "                    label=filtered_df['query_tag'])  # Add labels for legend\n",
        "    ax2.set_yscale('log')  # Use logarithmic scale for y-axis\n",
        "    ax2.set_title('Total Execution Time by Query Tag')\n",
        "    ax2.set_ylabel('Time (seconds)')\n",
        "    ax2.set_xticks([])  # Remove x-axis ticks\n",
        "    ax2.set_xticklabels([])  # Remove x-axis labels\n",
        "    ax2.grid(True, alpha=0.3, which=\"both\")  # Grid for both major and minor ticks on log scale\n",
        "    # Add exact values on bars\n",
        "    for bar in bars2:\n",
        "        height = bar.get_height()\n",
        "        ax2.text(bar.get_x() + bar.get_width() / 2, height * 1.1,  # 1.1 for slight offset above bar\n",
        "                 f'{height:.2f}', ha='center', va='bottom')\n",
        "    # Increase y-axis limit to create space for text\n",
        "    max_time_sec = max(filtered_df['total_time_sec'])\n",
        "    ax2.set_ylim(top=max_time_sec * 2)  # Double the max value to create headroom\n",
        "\n",
        "    # Plot 3: Total MB Processed\n",
        "    bars3 = ax3.bar(bar_positions, filtered_df['total_MB_processed'], color=colors, width=bar_width,\n",
        "                    label=filtered_df['query_tag'])  # Add labels for legend\n",
        "    ax3.set_yscale('log')  # Use logarithmic scale for y-axis\n",
        "    ax3.set_title('Total MB Processed by Query Tag')\n",
        "    ax3.set_ylabel('MB Processed')\n",
        "    ax3.set_xticks([])  # Remove x-axis ticks\n",
        "    ax3.set_xticklabels([])  # Remove x-axis labels\n",
        "    ax3.grid(True, alpha=0.3, which=\"both\")  # Grid for both major and minor ticks on log scale\n",
        "    # Add exact values on bars\n",
        "    for bar in bars3:\n",
        "        height = bar.get_height()\n",
        "        ax3.text(bar.get_x() + bar.get_width() / 2, height * 1.1,  # 1.1 for slight offset above bar\n",
        "                 f'{height:.2f}', ha='center', va='bottom')\n",
        "    # Increase y-axis limit to create space for text\n",
        "    max_mb_processed = max(filtered_df['total_MB_processed'])\n",
        "    ax3.set_ylim(top=max_mb_processed * 2)  # Double the max value to create headroom\n",
        "\n",
        "    # Add a single legend for the entire figure with increased font size\n",
        "    legend_font = FontProperties(size=12)  # Increase legend font size to 12\n",
        "    fig.legend(bars1, filtered_df['query_tag'], loc='upper center', ncol=2, bbox_to_anchor=(0.5, -0.05),\n",
        "               prop=legend_font)\n",
        "\n",
        "    # Adjust layout to center-align charts and reduce uneven white space\n",
        "    plt.subplots_adjust(left=0.05, right=0.95, top=0.85, bottom=0.02, wspace=0.3)\n",
        "    # left=0.05 and right=0.95 ensure the charts stretch to nearly the full width\n",
        "    # top=0.85 and bottom=0.02 reduce excess space at the top and accommodate the legend\n",
        "    # wspace=0.3 maintains the spacing between subplots\n",
        "\n",
        "    # Display the plots\n",
        "    plt.show()"
      ],
      "metadata": {
        "id": "zZMIRUuZdalx"
      },
      "execution_count": 97,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Data Prep"
      ],
      "metadata": {
        "id": "m3ZNaoIi-XJL"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Creating demo dataset in given project\n",
        "output_dataset_id = 'datasketch_demo_us'\n",
        "dataset_location = 'us'\n",
        "\n",
        "# Combine project and dataset\n",
        "dataset_id = f\"{bq_client.project}.{output_dataset_id}\"\n",
        "dataset = bigquery.Dataset(dataset_id)\n",
        "dataset.location = dataset_location\n",
        "\n",
        "# Check to make sure output dataset exists, create it if not\n",
        "try:\n",
        "  bq_client.get_dataset(dataset_id)\n",
        "  print(f\"BigQuery dataset {dataset_id} exists\\n\")\n",
        "\n",
        "except:\n",
        "  print(f\"BigQuery dataset {dataset_id} doesn't exist, so creating it\\n\")\n",
        "  dataset = bq_client.create_dataset(dataset)\n",
        "  print(f\"BigQuery dataset {dataset_id} created in {dataset_location}\")"
      ],
      "metadata": {
        "id": "3_99VDFADcvA",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "95f42a1e-cada-45e0-9228-3889bd8fc43d"
      },
      "execution_count": 98,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "BigQuery dataset nikunjbhartia-test-clients.datasketch_demo_us exists\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#@title Public Data preview\n",
        "%%bigquery --project {project_id}\n",
        "SELECT *\n",
        "FROM `bigquery-public-data.github_repos.files`\n",
        "LIMIT 10"
      ],
      "metadata": {
        "id": "jOtEYdLlHu6Z",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 426,
          "referenced_widgets": [
            "578d5e477cef4f7e9909ca2af66b2d9f",
            "f65de9d4dfb2448f8b7e395a3fb33ed1",
            "d2f06c7150ff45a8871fedeabcf775c4",
            "e004bcfcb573474b930c54e5cad1e441",
            "302e933f789c408dbc6cb72a711a31c5",
            "ccbfe62f7e494363a1002d45e0df8d12",
            "fccf6a45d3f741d98be0539c478b0604",
            "3d368a21cfe644fa89a585c2b9593379",
            "51481b8887984f88a9551998337c9366",
            "20642767ae1b44ecb5f277ca11efbf49",
            "3c11c01550cf48afbe41917a991e4177",
            "9989aad1fc30488dbd2e8cff3602f20c",
            "e1f6b0d9ca74469e9f4a1dfcb07f4a7a",
            "067bcd384acb4b8b9f0275c89ca0fbf5",
            "7c7a5b83e20c4a3fac12a96af6bdb574",
            "7aba77417ccd4fb7a1dac023b08cefec",
            "d7894b6a6f11471f8b1d7813f29434fa",
            "01c870221af748599b4342f83bb15cea",
            "93c3798383264d629cff2ce61bfedd81",
            "8a0c2776b686472690c81597cf1e483f",
            "9b4cafbac218439295dfe5a270095e5e",
            "612daab6332d412eaf5e442377b51fb6"
          ]
        },
        "outputId": "d398a283-ec94-4fb1-cdd6-849784bca173"
      },
      "execution_count": 99,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Query is running:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "578d5e477cef4f7e9909ca2af66b2d9f"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "9989aad1fc30488dbd2e8cff3602f20c"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                                       repo_name                ref  \\\n",
              "0                               klml/drfrederson  refs/heads/master   \n",
              "1                               klml/drfrederson  refs/heads/master   \n",
              "2                                  bmmchugh/core  refs/heads/master   \n",
              "3  TelerikAcademy/Data-Structures-and-Algorithms  refs/heads/master   \n",
              "4                                   rwinch/sagan  refs/heads/master   \n",
              "5                           wojciiii/RapidBreeze  refs/heads/master   \n",
              "6                                     wscqs/QSWB  refs/heads/master   \n",
              "7                                     wscqs/QSWB  refs/heads/master   \n",
              "8                                     wscqs/QSWB  refs/heads/master   \n",
              "9                                     wscqs/QSWB  refs/heads/master   \n",
              "\n",
              "                                                path   mode  \\\n",
              "0                                      _drf/lib/spyc  57344   \n",
              "1                                  _drf/lib/mustache  57344   \n",
              "2                        rake/vendor/java_build_task  57344   \n",
              "3  Workshops/2016/23-11-2016/Pattern/SVGs/1_color...  40960   \n",
              "4                                               wiki  57344   \n",
              "5                               src/uml/plantuml.jar  40960   \n",
              "6  DSWeibo/Pods/Headers/Private/SDWebImage/NSData...  40960   \n",
              "7  DSWeibo/Pods/Headers/Private/AFNetworking/UIBu...  40960   \n",
              "8  DSWeibo/Pods/Headers/Private/AFNetworking/AFUR...  40960   \n",
              "9  DSWeibo/Pods/Headers/Private/AFNetworking/UIIm...  40960   \n",
              "\n",
              "                                         id  \\\n",
              "0  5cbaa0af30b499a9a741a08b84970208bcf65c42   \n",
              "1  14bc3b4f6a4770b535fc433bfd0435471ed386c6   \n",
              "2  4c01e40dee2ec65e19d5a653def66ce93faf1aac   \n",
              "3  129ce1f294fb80f18e1e6d37c161d9826992be38   \n",
              "4  f9e464069a242975768a8f2b13db4098f731feee   \n",
              "5  6e3dc4e0a976b3495ccc03b98c219ff21ed87e97   \n",
              "6  84574987a6526177d1e2c01148f61d15c6834270   \n",
              "7  8f2e221939a886ccf4fb7386c447f5dffcc00fec   \n",
              "8  d9b35fb754fdebac32eaf763ed331f28eea1e4d9   \n",
              "9  74f66499094512646cb2efc69ae8e207fba37467   \n",
              "\n",
              "                                      symlink_target  \n",
              "0                                               None  \n",
              "1                                               None  \n",
              "2                                               None  \n",
              "3                                              1.svg  \n",
              "4                                               None  \n",
              "5                                  plantuml.7999.jar  \n",
              "6  ../../../SDWebImage/SDWebImage/NSData+ImageCon...  \n",
              "7  ../../../AFNetworking/UIKit+AFNetworking/UIBut...  \n",
              "8  ../../../AFNetworking/AFNetworking/AFURLConnec...  \n",
              "9  ../../../AFNetworking/UIKit+AFNetworking/UIIma...  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-c7a916fd-fc43-4d2d-b714-14af52785242\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>repo_name</th>\n",
              "      <th>ref</th>\n",
              "      <th>path</th>\n",
              "      <th>mode</th>\n",
              "      <th>id</th>\n",
              "      <th>symlink_target</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>klml/drfrederson</td>\n",
              "      <td>refs/heads/master</td>\n",
              "      <td>_drf/lib/spyc</td>\n",
              "      <td>57344</td>\n",
              "      <td>5cbaa0af30b499a9a741a08b84970208bcf65c42</td>\n",
              "      <td>None</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>klml/drfrederson</td>\n",
              "      <td>refs/heads/master</td>\n",
              "      <td>_drf/lib/mustache</td>\n",
              "      <td>57344</td>\n",
              "      <td>14bc3b4f6a4770b535fc433bfd0435471ed386c6</td>\n",
              "      <td>None</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>bmmchugh/core</td>\n",
              "      <td>refs/heads/master</td>\n",
              "      <td>rake/vendor/java_build_task</td>\n",
              "      <td>57344</td>\n",
              "      <td>4c01e40dee2ec65e19d5a653def66ce93faf1aac</td>\n",
              "      <td>None</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>TelerikAcademy/Data-Structures-and-Algorithms</td>\n",
              "      <td>refs/heads/master</td>\n",
              "      <td>Workshops/2016/23-11-2016/Pattern/SVGs/1_color...</td>\n",
              "      <td>40960</td>\n",
              "      <td>129ce1f294fb80f18e1e6d37c161d9826992be38</td>\n",
              "      <td>1.svg</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>rwinch/sagan</td>\n",
              "      <td>refs/heads/master</td>\n",
              "      <td>wiki</td>\n",
              "      <td>57344</td>\n",
              "      <td>f9e464069a242975768a8f2b13db4098f731feee</td>\n",
              "      <td>None</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>wojciiii/RapidBreeze</td>\n",
              "      <td>refs/heads/master</td>\n",
              "      <td>src/uml/plantuml.jar</td>\n",
              "      <td>40960</td>\n",
              "      <td>6e3dc4e0a976b3495ccc03b98c219ff21ed87e97</td>\n",
              "      <td>plantuml.7999.jar</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>wscqs/QSWB</td>\n",
              "      <td>refs/heads/master</td>\n",
              "      <td>DSWeibo/Pods/Headers/Private/SDWebImage/NSData...</td>\n",
              "      <td>40960</td>\n",
              "      <td>84574987a6526177d1e2c01148f61d15c6834270</td>\n",
              "      <td>../../../SDWebImage/SDWebImage/NSData+ImageCon...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>wscqs/QSWB</td>\n",
              "      <td>refs/heads/master</td>\n",
              "      <td>DSWeibo/Pods/Headers/Private/AFNetworking/UIBu...</td>\n",
              "      <td>40960</td>\n",
              "      <td>8f2e221939a886ccf4fb7386c447f5dffcc00fec</td>\n",
              "      <td>../../../AFNetworking/UIKit+AFNetworking/UIBut...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>wscqs/QSWB</td>\n",
              "      <td>refs/heads/master</td>\n",
              "      <td>DSWeibo/Pods/Headers/Private/AFNetworking/AFUR...</td>\n",
              "      <td>40960</td>\n",
              "      <td>d9b35fb754fdebac32eaf763ed331f28eea1e4d9</td>\n",
              "      <td>../../../AFNetworking/AFNetworking/AFURLConnec...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>wscqs/QSWB</td>\n",
              "      <td>refs/heads/master</td>\n",
              "      <td>DSWeibo/Pods/Headers/Private/AFNetworking/UIIm...</td>\n",
              "      <td>40960</td>\n",
              "      <td>74f66499094512646cb2efc69ae8e207fba37467</td>\n",
              "      <td>../../../AFNetworking/UIKit+AFNetworking/UIIma...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c7a916fd-fc43-4d2d-b714-14af52785242')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-c7a916fd-fc43-4d2d-b714-14af52785242 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-c7a916fd-fc43-4d2d-b714-14af52785242');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-b26859b6-9ecf-4043-bf8b-e40f30523ecd\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-b26859b6-9ecf-4043-bf8b-e40f30523ecd')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-b26859b6-9ecf-4043-bf8b-e40f30523ecd button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"get_ipython()\",\n  \"rows\": 10,\n  \"fields\": [\n    {\n      \"column\": \"repo_name\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 6,\n        \"samples\": [\n          \"klml/drfrederson\",\n          \"bmmchugh/core\",\n          \"wscqs/QSWB\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"ref\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"refs/heads/master\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"path\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          \"DSWeibo/Pods/Headers/Private/AFNetworking/AFURLConnectionOperation.h\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"mode\",\n      \"properties\": {\n        \"dtype\": \"Int64\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          40960\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"id\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          \"d9b35fb754fdebac32eaf763ed331f28eea1e4d9\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"symlink_target\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 6,\n        \"samples\": [\n          \"1.svg\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 99
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#@title Public data number of records\n",
        "%%bigquery --project {project_id}\n",
        "-- Verify the row count.\n",
        "SELECT COUNT(*) AS row_count\n",
        "FROM `bigquery-public-data.github_repos.files`;"
      ],
      "metadata": {
        "id": "BXS2sOM_LIE7",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 144,
          "referenced_widgets": [
            "99707561a6d34acc8800d75a084c4d36",
            "f10fed5068844c04a9e9b60f3b0e6fdb",
            "1a7f3aa4754f419ca3ad8ee8c3cba7b4",
            "a18039f43cec4d2e9fcd8baa9020c60b",
            "fd495892b4cc4af6a2b113f39a252abb",
            "25a53ac41afe4d3a96cd1ed79fabe0ba",
            "b9886d4b87574ba18fb3b28dbf5732af",
            "dec31b4d035b46b28d09dc2d4d6b97a7",
            "1fafd8886fc548bca8641873356ebc63",
            "4c96499613094fe58904ee13d03ce334",
            "1008e01358434c27b1fd12d8bf8fdcf4",
            "bedb0f2f8fc54563bf04df8dbab30b65",
            "7ad67ff235414bf7b9e4157730941d93",
            "b42c4ede23344c7680095de2fff5e96d",
            "d23b2216265b49fc86402ad122c7aa0f",
            "11801d21afbd4b548fd5ace58e90b269",
            "694fb4cd771b4ec5af89564ddb3d3ba4",
            "3a13939560154585b18b7d7eb2bc66fb",
            "b03e89e49b7d4da8a40bd5ae82b7da2b",
            "5bc16737e3114f9a8a30cf1670fc38eb",
            "3567ab919acb44e68c02b760b6313588",
            "a8be411abfd749899746bceec0f9790c"
          ]
        },
        "outputId": "381476be-d510-4810-f5cf-4c9191f4b896"
      },
      "execution_count": 100,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Query is running:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "99707561a6d34acc8800d75a084c4d36"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "bedb0f2f8fc54563bf04df8dbab30b65"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "    row_count\n",
              "0  2309424945"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-57e96d4b-1b93-4b64-ac41-66e3588a912b\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>row_count</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2309424945</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-57e96d4b-1b93-4b64-ac41-66e3588a912b')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-57e96d4b-1b93-4b64-ac41-66e3588a912b button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-57e96d4b-1b93-4b64-ac41-66e3588a912b');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"get_ipython()\",\n  \"rows\": 1,\n  \"fields\": [\n    {\n      \"column\": \"row_count\",\n      \"properties\": {\n        \"dtype\": \"Int64\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          2309424945\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 100
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Exact Metric Extraction"
      ],
      "metadata": {
        "id": "2KIi9LXVjXFl"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "#@title Query to extract file count for top 10 file extensions in all github repos using `GROUP BY` and `LIMIT`\n",
        "%%bigquery --no_query_cache exact_top_10_extensions_df --project {project_id}\n",
        "/* QUERY_TAG<(01) EXACT using GROUP BY & COUNT > */\n",
        "SELECT\n",
        "  REGEXP_EXTRACT(path, r'\\.([^.]+)$') AS file_extension,\n",
        "  COUNT(*) as file_count\n",
        "FROM `bigquery-public-data.github_repos.files`\n",
        "GROUP BY file_extension\n",
        "HAVING file_extension IS NOT NULL\n",
        "ORDER BY file_count DESC\n",
        "LIMIT 10;"
      ],
      "metadata": {
        "id": "J1r6y6IbuUFU",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 81,
          "referenced_widgets": [
            "bafc31610b1141c3831ba4271f94dce1",
            "dc6d86b19b604ebb847a86abf082d8d1",
            "f35ca264735f48a5953210e50fad7fc3",
            "e1e33f0cd61c4806a43c2c89e15e753c",
            "fbc15ecf68374e11850cab1c241d1535",
            "2bf27b93bcbf442996c8f53b5acec11f",
            "8d7f67d5143e474a945be44d9c1a4c12",
            "c8344fbceeac4388b0cc0497b65b42d3",
            "c3c2c6fa24684a8a8c4b389f7fa7159a",
            "254e0a9ddeb24a0e99d9c435a8ecf8be",
            "fb40c287dd914751a6d4249f3498ccf3",
            "b65da579819f4a8aa74467aaa214d09e",
            "0f0b282a01dc4ea7b6134385ef470d62",
            "40fb9b5f677c44a1980b06d1131fd016",
            "bfdd9e04030e48c2a1569230bc7fa0b8",
            "0b36433f9ec84df7822c1423adf6c111",
            "b87a8ae562fa483288c7722e635dcb18",
            "885b3f13aebb43c7b347789e1145bcf1",
            "d978de3f34944527979d7944cd08e143",
            "16c971f878054e7fac0a0a5a35ca0bf8",
            "d4b9b8800caa4ac8b2e3522cc72fc6b3",
            "1d581673f082499696e8edbc09b3645c"
          ]
        },
        "outputId": "d37ce873-9119-45e8-c6d6-3e262b59ab5d"
      },
      "execution_count": 101,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Query is running:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "bafc31610b1141c3831ba4271f94dce1"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "b65da579819f4a8aa74467aaa214d09e"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "exact_top_10_extensions_df"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 362
        },
        "id": "UfkJck04zjEY",
        "outputId": "0dfff16a-996d-42ea-8547-a01b1b07f251"
      },
      "execution_count": 102,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "  file_extension  file_count\n",
              "0            png   432540779\n",
              "1             js   287564161\n",
              "2              c   266309899\n",
              "3              h   246919509\n",
              "4            php    92049161\n",
              "5           java    59475340\n",
              "6            txt    52420600\n",
              "7           html    47835975\n",
              "8           json    42702526\n",
              "9            svg    41563549"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-48a9ecef-cf9e-48f5-9386-2eb370cdaad7\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>file_extension</th>\n",
              "      <th>file_count</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>png</td>\n",
              "      <td>432540779</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>js</td>\n",
              "      <td>287564161</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>c</td>\n",
              "      <td>266309899</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>h</td>\n",
              "      <td>246919509</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>php</td>\n",
              "      <td>92049161</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>java</td>\n",
              "      <td>59475340</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>txt</td>\n",
              "      <td>52420600</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>html</td>\n",
              "      <td>47835975</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>json</td>\n",
              "      <td>42702526</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>svg</td>\n",
              "      <td>41563549</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-48a9ecef-cf9e-48f5-9386-2eb370cdaad7')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-48a9ecef-cf9e-48f5-9386-2eb370cdaad7 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-48a9ecef-cf9e-48f5-9386-2eb370cdaad7');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-443c5dee-e4eb-4d6e-8d09-80079569f455\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-443c5dee-e4eb-4d6e-8d09-80079569f455')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-443c5dee-e4eb-4d6e-8d09-80079569f455 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "  <div id=\"id_869c5845-2fd7-4669-ab39-12b1f355e5d1\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('exact_top_10_extensions_df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_869c5845-2fd7-4669-ab39-12b1f355e5d1 button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('exact_top_10_extensions_df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "exact_top_10_extensions_df",
              "summary": "{\n  \"name\": \"exact_top_10_extensions_df\",\n  \"rows\": 10,\n  \"fields\": [\n    {\n      \"column\": \"file_extension\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          \"json\",\n          \"js\",\n          \"java\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"file_count\",\n      \"properties\": {\n        \"dtype\": \"Int64\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          42702526,\n          287564161,\n          59475340\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 102
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# FI Sketch Creation\n"
      ],
      "metadata": {
        "id": "USpO-Kw4Smxc"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "### OSS FI Sketch Creation using BQ JS UDAF\n",
        "\n",
        "[datasketches-bigquery github](https://github.com/apache/datasketches-bigquery/blob/main/fi/README.md)\n",
        "\n",
        "[FI sketch relative error](https://datasketches.apache.org/docs/Frequency/FrequentItemsErrorTable.html)"
      ],
      "metadata": {
        "id": "r5ApPhVupipX"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "#@title Query to create git file extension based FI sketches for each git-repo\n",
        "%%bigquery --project {project_id}\n",
        "/* QUERY_TAG<(03) CREATE_FI_SKETCHES_ALL> */\n",
        "CREATE OR REPLACE TABLE `datasketch_demo_us.fi_sketches_per_repo` AS\n",
        "SELECT\n",
        "  repo_name,\n",
        "  bqutil.datasketches.frequent_strings_sketch_build(\n",
        "    REGEXP_EXTRACT(path, r'\\.([^.]+)$'),\n",
        "    1,\n",
        "    8) AS extensions_fi_sketch,\n",
        "FROM `bigquery-public-data.github_repos.files`\n",
        "GROUP BY repo_name"
      ],
      "metadata": {
        "id": "LCEKnSLmL7Pz",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 85,
          "referenced_widgets": [
            "3ecad9020670434fbe1ae88e5206cf11",
            "a3a971cae2e14820b994ab0e3bb9fd44",
            "89087801195046f4beec4411ffb827b9",
            "06961d54963b48eb863b70a1b58acbf1",
            "cfabb1ac989942f9b0deb370e2e8d4ea",
            "2849980ebd74409e9d8716142db35e3d",
            "aa6f81754886428390828fbc694abeab",
            "87ce14746f5b498d8c5948087a26c46d",
            "4edab970f48f4a0383e674a34597b979",
            "a473d53050534b2a85579b4b13b17ea1",
            "b88d5b13191243ae8ed36f7a953856e8"
          ]
        },
        "outputId": "a90fe7bf-0c1b-493f-df1e-ab6d1bcd10aa"
      },
      "execution_count": 103,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Query is running:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "3ecad9020670434fbe1ae88e5206cf11"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Empty DataFrame\n",
              "Columns: []\n",
              "Index: []"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-79ce3c21-605d-4aed-b88d-7d56351975e6\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-79ce3c21-605d-4aed-b88d-7d56351975e6')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-79ce3c21-605d-4aed-b88d-7d56351975e6 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-79ce3c21-605d-4aed-b88d-7d56351975e6');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"get_ipython()\",\n  \"rows\": 0,\n  \"fields\": []\n}"
            }
          },
          "metadata": {},
          "execution_count": 103
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "\n",
        "#@title Query to create FI sketch for a single repo ( just to compare stats for incremental sketch creation )\n",
        "%%bigquery --project {project_id}\n",
        "/* QUERY_TAG<(04) CREATE_FI_SKETCHES_1Repo> */\n",
        "SELECT\n",
        "  repo_name,\n",
        "  bqutil.datasketches.frequent_strings_sketch_build(\n",
        "    REGEXP_EXTRACT(path, r'\\.([^.]+)$'),\n",
        "    1,\n",
        "    8) AS extensions_fi_sketch,\n",
        "FROM `bigquery-public-data.github_repos.files`\n",
        "WHERE repo_name = \"google/mysql-protobuf\"\n",
        "GROUP BY repo_name"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 144,
          "referenced_widgets": [
            "59fa3fb0d8ad43979c17b22ff1ac028d",
            "ad8bc1a29cc64eef833fa8b82cef92d6",
            "84552489c9164723a44f0554c2d35487",
            "f756972fbffc479db05d001deab3335a",
            "60a1c4a8b38245f0a7f34b8293e29d05",
            "32bb796cebd144818909c68142975224",
            "7bfc5e3ec86e4a429d5f1bcaa70a4391",
            "954ff75fa65f42d7965cdca82443a100",
            "9ca76d9a42704683a5c568632804558a",
            "6579dfa29da14e3b91a59eae5fbaca17",
            "985058b61696475eb3c561bac2812fb1",
            "f564c212f95247c197187eebd1e01084",
            "a26f39da170046e0a9cc8a5cccf018ca",
            "0c44cbf2e18749f5b2615286adf5427e",
            "b33a295ab079427f9b267a22fa6656f7",
            "322f760fe0eb47a687b1c56771182e30",
            "3117566071874bfa8fddb10969691378",
            "44464c0654784d42a1c088bf2dc961dd",
            "83333d8094464eb89e47effb01c013c6",
            "a4208c8948374c2a846e9c04ee8526ff",
            "c0d5cad173d14990bc2c3ae43f61ee3a",
            "d24c284f434043e99b261e6bf17e3f4a"
          ]
        },
        "id": "Bs0VeobqnInl",
        "outputId": "e8a016bb-6917-4801-c387-de21168f23e7"
      },
      "execution_count": 104,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Query is running:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "59fa3fb0d8ad43979c17b22ff1ac028d"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "f564c212f95247c197187eebd1e01084"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "               repo_name                               extensions_fi_sketch\n",
              "0  google/mysql-protobuf  b'\\x04\\x01\\n\\x08\\x08\\x00\\x00\\x00\\x88\\x00\\x00\\x..."
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-e887f293-a62b-484b-9df1-7dab91aaa4cd\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>repo_name</th>\n",
              "      <th>extensions_fi_sketch</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>google/mysql-protobuf</td>\n",
              "      <td>b'\\x04\\x01\\n\\x08\\x08\\x00\\x00\\x00\\x88\\x00\\x00\\x...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-e887f293-a62b-484b-9df1-7dab91aaa4cd')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-e887f293-a62b-484b-9df1-7dab91aaa4cd button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-e887f293-a62b-484b-9df1-7dab91aaa4cd');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"get_ipython()\",\n  \"rows\": 1,\n  \"fields\": [\n    {\n      \"column\": \"repo_name\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"google/mysql-protobuf\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"extensions_fi_sketch\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"b'\\\\x04\\\\x01\\\\n\\\\x08\\\\x08\\\\x00\\\\x00\\\\x00\\\\x88\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x004c\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00?\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00P\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x04\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x14\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x06\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00b\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x1e\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xa7\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x0c\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xb8\\\\x04\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x04\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x05\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x06\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x03\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\n\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x0c\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x1a\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x04\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00K\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00B\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x07\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x0b\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x03\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00i\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x04\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00J\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x17\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xa9\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00{\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x03\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x0c\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x001\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00@\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x04\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xf4\\\\x0e\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x06\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\r\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x1d\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xce\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00@\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x07\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xc0\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\n\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x0b\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x008\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00T\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00-\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x8b\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x07\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x12\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00F\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x07\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x05\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x05\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x1e\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x1c\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x16\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x0c\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xfe\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xfa\\\\x11\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xb9\\\\x04\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\t\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x04\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x06\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00c\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x16\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x18\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x04\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00J\\\\x03\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00B\\\\x06\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00j\\\\x12\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x004\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00S\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x18\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x005\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x06\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00d\\\\x04\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x04\\\\x00\\\\x00\\\\x00json\\\\x07\\\\x00\\\\x00\\\\x00pbxproj\\\\x02\\\\x00\\\\x00\\\\x00in\\\\x05\\\\x00\\\\x00\\\\x00prerm\\\\x02\\\\x00\\\\x00\\\\x00md\\\\x05\\\\x00\\\\x00\\\\x00plist\\\\x02\\\\x00\\\\x00\\\\x00as\\\\x02\\\\x00\\\\x00\\\\x00py\\\\x03\\\\x00\\\\x00\\\\x00pem\\\\x03\\\\x00\\\\x00\\\\x00cnf\\\\x06\\\\x00\\\\x00\\\\x00csproj\\\\x05\\\\x00\\\\x00\\\\x00basic\\\\x02\\\\x00\\\\x00\\\\x00cc\\\\t\\\\x00\\\\x00\\\\x00bzrignore\\\\t\\\\x00\\\\x00\\\\x00gitignore\\\\x02\\\\x00\\\\x00\\\\x00ac\\\\x08\\\\x00\\\\x00\\\\x00xcscheme\\\\x03\\\\x00\\\\x00\\\\x00smd\\\\x08\\\\x00\\\\x00\\\\x00damemtop\\\\x02\\\\x00\\\\x00\\\\x00il\\\\x07\\\\x00\\\\x00\\\\x00preinst\\\\x02\\\\x00\\\\x00\\\\x00ih\\\\x03\\\\x00\\\\x00\\\\x00bpr\\\\x02\\\\x00\\\\x00\\\\x00m4\\\\x03\\\\x00\\\\x00\\\\x00bmp\\\\x03\\\\x00\\\\x00\\\\x00MYD\\\\x04\\\\x00\\\\x00\\\\x00info\\\\x03\\\\x00\\\\x00\\\\x00ctl\\\\x05\\\\x00\\\\x00\\\\x00links\\\\x05\\\\x00\\\\x00\\\\x00cmake\\\\x03\\\\x00\\\\x00\\\\x00sql\\\\x03\\\\x00\\\\x00\\\\x00yml\\\\x05\\\\x00\\\\x00\\\\x00mingw\\\\x04\\\\x00\\\\x00\\\\x00list\\\\x06\\\\x00\\\\x00\\\\x00config\\\\x03\\\\x00\\\\x00\\\\x00001\\\\x01\\\\x00\\\\x00\\\\x00d\\\\x04\\\\x00\\\\x00\\\\x00supp\\\\x06\\\\x00\\\\x00\\\\x00Google\\\\x02\\\\x00\\\\x00\\\\x00sh\\\\x08\\\\x00\\\\x00\\\\x00xcconfig\\\\x03\\\\x00\\\\x00\\\\x00dsp\\\\x07\\\\x00\\\\x00\\\\x00require\\\\x03\\\\x00\\\\x00\\\\x00frm\\\\x03\\\\x00\\\\x00\\\\x00psd\\\\x04\\\\x00\\\\x00\\\\x00less\\\\x05\\\\x00\\\\x00\\\\x00proto\\\\x03\\\\x00\\\\x00\\\\x00ARZ\\\\x04\\\\x00\\\\x00\\\\x00pump\\\\r\\\\x00\\\\x00\\\\x00out-of-source\\\\x03\\\\x00\\\\x00\\\\x00php\\\\x03\\\\x00\\\\x00\\\\x00MYI\\\\x04\\\\x00\\\\x00\\\\x00ATRT\\\\x01\\\\x00\\\\x00\\\\x00m\\\\x0b\\\\x00\\\\x00\\\\x00postinstall\\\\t\\\\x00\\\\x00\\\\x00unittests\\\\x07\\\\x00\\\\x00\\\\x00install\\\\x06\\\\x00\\\\x00\\\\x00binlog\\\\x03\\\\x00\\\\x00\\\\x00swf\\\\x02\\\\x00\\\\x00\\\\x00js\\\\x04\\\\x00\\\\x00\\\\x00base\\\\x06\\\\x00\\\\x00\\\\x00postrm\\\\x03\\\\x00\\\\x00\\\\x00CSM\\\\x03\\\\x00\\\\x00\\\\x00txt\\\\x03\\\\x00\\\\x00\\\\x00gif\\\\x03\\\\x00\\\\x00\\\\x00png\\\\x03\\\\x00\\\\x00\\\\x00xsl\\\\x11\\\\x00\\\\x00\\\\x00lintian-overrides\\\\x02\\\\x00\\\\x00\\\\x00pp\\\\x01\\\\x00\\\\x00\\\\x00l\\\\x02\\\\x00\\\\x00\\\\x00cs\\\\x03\\\\x00\\\\x00\\\\x00zip\\\\x03\\\\x00\\\\x00\\\\x00snk\\\\x06\\\\x00\\\\x00\\\\x00000001\\\\x01\\\\x00\\\\x00\\\\x00c\\\\x01\\\\x00\\\\x00\\\\x003\\\\x03\\\\x00\\\\x00\\\\x00jpg\\\\x02\\\\x00\\\\x00\\\\x00ic\\\\x03\\\\x00\\\\x00\\\\x00ARM\\\\x03\\\\x00\\\\x00\\\\x00xml\\\\x06\\\\x00\\\\x00\\\\x00ndbapi\\\\x03\\\\x00\\\\x00\\\\x00hpp\\\\x08\\\\x00\\\\x00\\\\x00postinst\\\\x03\\\\x00\\\\x00\\\\x00awk\\\\x02\\\\x00\\\\x00\\\\x00rb\\\\x03\\\\x00\\\\x00\\\\x00ini\\\\x03\\\\x00\\\\x00\\\\x00css\\\\x04\\\\x00\\\\x00\\\\x00THIS\\\\x04\\\\x00\\\\x00\\\\x00init\\\\x02\\\\x00\\\\x00\\\\x00am\\\\x03\\\\x00\\\\x00\\\\x00sln\\\\x08\\\\x00\\\\x00\\\\x00defaults\\\\x04\\\\x00\\\\x00\\\\x00conf\\\\x03\\\\x00\\\\x00\\\\x00dsw\\\\x08\\\\x00\\\\x00\\\\x00fallback\\\\x01\\\\x00\\\\x00\\\\x00g\\\\x07\\\\x00\\\\x00\\\\x00gemspec\\\\x03\\\\x00\\\\x00\\\\x00ico\\\\n\\\\x00\\\\x00\\\\x00properties\\\\x03\\\\x00\\\\x00\\\\x00def\\\\x04\\\\x00\\\\x00\\\\x00dirs\\\\x05\\\\x00\\\\x00\\\\x00patch\\\\x03\\\\x00\\\\x00\\\\x00cpp\\\\x06\\\\x00\\\\x00\\\\x00result\\\\x02\\\\x00\\\\x00\\\\x00rc\\\\x02\\\\x00\\\\x00\\\\x00yy\\\\x03\\\\x00\\\\x00\\\\x00svg\\\\x03\\\\x00\\\\x00\\\\x00inc\\\\x04\\\\x00\\\\x00\\\\x00dist\\\\x02\\\\x00\\\\x00\\\\x00gz\\\\x03\\\\x00\\\\x00\\\\x00bat\\\\t\\\\x00\\\\x00\\\\x00templates\\\\x01\\\\x00\\\\x00\\\\x001\\\\x01\\\\x00\\\\x00\\\\x00t\\\\x02\\\\x00\\\\x00\\\\x00pm\\\\x03\\\\x00\\\\x00\\\\x00log\\\\x03\\\\x00\\\\x00\\\\x00der\\\\x04\\\\x00\\\\x00\\\\x00java\\\\x18\\\\x00\\\\x00\\\\x00ClusterConnectionService\\\\x01\\\\x00\\\\x00\\\\x00h\\\\x04\\\\x00\\\\x00\\\\x00test\\\\x02\\\\x00\\\\x00\\\\x00pl\\\\x04\\\\x00\\\\x00\\\\x00html\\\\x04\\\\x00\\\\x00\\\\x00Data\\\\x03\\\\x00\\\\x00\\\\x00pre\\\\x03\\\\x00\\\\x00\\\\x00dat\\\\x03\\\\x00\\\\x00\\\\x00dot\\\\x07\\\\x00\\\\x00\\\\x00podspec\\\\x06\\\\x00\\\\x00\\\\x00weekly\\\\x06\\\\x00\\\\x00\\\\x00cbproj\\\\x04\\\\x00\\\\x00\\\\x00defs\\\\x03\\\\x00\\\\x00\\\\x00par\\\\x03\\\\x00\\\\x00\\\\x00opt\\\\x03\\\\x00\\\\x00\\\\x00cfg\\\\x04\\\\x00\\\\x00\\\\x00push\\\\x05\\\\x00\\\\x00\\\\x00swift'\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 104
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Sample output of sketches table\n",
        "%%bigquery --project {project_id}\n",
        "SELECT *\n",
        "from `datasketch_demo_us.fi_sketches_per_repo`\n",
        "LIMIT 10"
      ],
      "metadata": {
        "id": "x3FWfQOR2TaA",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 426,
          "referenced_widgets": [
            "e231ca63bf1c4ad28a116e8986116b08",
            "31a616a3e4c34e72aceafcf415e79c9a",
            "06c4d4c8e7804c60b07881a842d1c0b7",
            "aea1c9f2d78e40a6b39af7fccb2a33c6",
            "e01ed1c6ca2a411d9365ae88317814b3",
            "c8633614fa7e4d638e9960690f32cd62",
            "88f3fe82dd874f49960339b0421ce6ef",
            "c85328ffcea24013aa056a0d799b3159",
            "d328499931b84bce9bd64394ac974b4c",
            "aeed64bff8c74bd486f09f365fc3ad85",
            "d7e5d95da3014409b6ad6702b5190f73",
            "be0d01e7de564ce8a0360ce99b8eaed8",
            "b3eef97efcb64678a121ca896ecb14d3",
            "5d9f90fc2a5a489b90666e5ef88d533a",
            "b0695cdea95844be973ed49f28d0f240",
            "84a609a326134f9fa040e8b60c8bfa6c",
            "f6fedb1725c94feb90ea1127b559f2a5",
            "19ffdfd7f3a84bfca5ea1f0523e5a4b4",
            "998d89b03b404320a2e810367a4b0db3",
            "2619083f07c44caebbb192c27cc93128",
            "eb4811d70e1241d1897dd7d125e2b7b2",
            "fe73f1f520b44e95af849288dbc9b703"
          ]
        },
        "outputId": "fd770301-8a30-4241-bb8a-41f547f5799a"
      },
      "execution_count": 105,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Query is running:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "e231ca63bf1c4ad28a116e8986116b08"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "be0d01e7de564ce8a0360ce99b8eaed8"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                  repo_name               extensions_fi_sketch\n",
              "0      sh0b/ejabberd-zimbra  b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'\n",
              "1      FrankHliva/IncludeJS  b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'\n",
              "2                kammag/wot  b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'\n",
              "3               spar1/spar1  b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'\n",
              "4         otakisan/DiffCost  b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'\n",
              "5  spexiono/Stylish-Spotify  b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'\n",
              "6        AdamByrne/cloak.js  b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'\n",
              "7   exsules/docker-postgres  b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'\n",
              "8         HugoDecharnes/CPU  b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'\n",
              "9               Juciane/URI  b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-43f75f64-14a1-4134-ac2c-98e31f2e5a2b\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>repo_name</th>\n",
              "      <th>extensions_fi_sketch</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>sh0b/ejabberd-zimbra</td>\n",
              "      <td>b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>FrankHliva/IncludeJS</td>\n",
              "      <td>b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>kammag/wot</td>\n",
              "      <td>b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>spar1/spar1</td>\n",
              "      <td>b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>otakisan/DiffCost</td>\n",
              "      <td>b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>spexiono/Stylish-Spotify</td>\n",
              "      <td>b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>AdamByrne/cloak.js</td>\n",
              "      <td>b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>exsules/docker-postgres</td>\n",
              "      <td>b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>HugoDecharnes/CPU</td>\n",
              "      <td>b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>Juciane/URI</td>\n",
              "      <td>b'\\x01\\x01\\n\\x08\\x03\\x05\\x00\\x00'</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-43f75f64-14a1-4134-ac2c-98e31f2e5a2b')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-43f75f64-14a1-4134-ac2c-98e31f2e5a2b button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-43f75f64-14a1-4134-ac2c-98e31f2e5a2b');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-268541bf-4f57-4a0d-9be6-7f8e2bd12a66\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-268541bf-4f57-4a0d-9be6-7f8e2bd12a66')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-268541bf-4f57-4a0d-9be6-7f8e2bd12a66 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"get_ipython()\",\n  \"rows\": 10,\n  \"fields\": [\n    {\n      \"column\": \"repo_name\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          \"HugoDecharnes/CPU\",\n          \"FrankHliva/IncludeJS\",\n          \"spexiono/Stylish-Spotify\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"extensions_fi_sketch\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"b'\\\\x01\\\\x01\\\\n\\\\x08\\\\x03\\\\x05\\\\x00\\\\x00'\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 105
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Approx Metric Extraction\n",
        "\n",
        "See all supported FI sketch functions in [datasketches-bigquery repo](https://github.com/apache/datasketches-bigquery/blob/main/fi/README.md)\n",
        "\n",
        "- All these functions are published in all regional BQ public datasets : `bqutil.datasketches` (US multiregion) or `bqutil.datasketches_<region>`\n",
        "- See [bigquery-utils repo](https://github.com/GoogleCloudPlatform/bigquery-utils/tree/master/udfs#repo-folder-to-bigquery-dataset-mappings) for more details"
      ],
      "metadata": {
        "id": "wTHtAz4ojiaE"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "#@title Query to extract file counts for Top10 file extensions in github using fi sketch BQ UD(A)Fs\n",
        "%%bigquery approx_top_10_extensions_df --project {project_id}\n",
        "\n",
        "/* QUERY_TAG<(02) APPROX using FI_SKETCHES > */\n",
        "SELECT\n",
        "  fi.item as file_extension,\n",
        "  fi.estimate as file_count\n",
        "FROM (\n",
        "  SELECT\n",
        "    bqutil.datasketches.frequent_strings_sketch_get_result(\n",
        "      bqutil.datasketches.frequent_strings_sketch_merge(extensions_fi_sketch, 8),\n",
        "      \"NO_FALSE_NEGATIVES\",\n",
        "      null) as frequent_items\n",
        "  FROM `datasketch_demo_us.fi_sketches_per_repo`), UNNEST(frequent_items) as fi\n",
        "ORDER BY file_count DESC\n",
        "LIMIT 10"
      ],
      "metadata": {
        "id": "ZPDsenfm0mMO",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 81,
          "referenced_widgets": [
            "995b3c9dc69a4be5b02934f096d223e7",
            "8deb529d72834e2aa6aacf59ce476f8a",
            "702825fe1b184861b5abfac1f1cdfcc6",
            "b4c941a0f5774e7fb9c3a718d9a46713",
            "de684ecc4a304aeba4e3eb771f7fe017",
            "6b4462d4da6a417a9de9780b7ca12332",
            "687bd5d50d974fcba2881a6d166c039d",
            "20898cceb9c3415ebc78bf30a0cb4e34",
            "3d1629af7c534fd19ff1e20b9213e387",
            "752eab240f444c528c60ae21e19fb62c",
            "d32ebef7dd5a47a8a34a7b21930a4d1a",
            "3d3cd4a99f7b4680a96a315b1878f93f",
            "39605328bf3245889d3c9125248f89d5",
            "eb196aae073145f794b30834a66b95b9",
            "4d7df40fa5f349d9b5e5b649552dc47c",
            "4d4932b02db44380b2bbe1a0a9f48692",
            "c4a4590269a246fdb7e984d30c1fc8f9",
            "6426c668ea994a01a7f66fa5787eca05",
            "8ac746a8457d463ca403b0c3546d8c9a",
            "abf73e21f9ad4595a2bc62cebfd3a7c0",
            "08abdd3ae52644cebdd1ce4c327c3cab",
            "c71338ef552147e4a1f77b2e72e3dce7"
          ]
        },
        "outputId": "61df08c8-43b1-4a77-d793-a7c6e657edfc"
      },
      "execution_count": 106,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Query is running:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "995b3c9dc69a4be5b02934f096d223e7"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "3d3cd4a99f7b4680a96a315b1878f93f"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Comparing results"
      ],
      "metadata": {
        "id": "XYI7IUtZkoeJ"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "approx_top_10_extensions_df"
      ],
      "metadata": {
        "id": "HNx5VfWo5Iy6",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 362
        },
        "outputId": "de2460d3-3655-4453-cb19-bfba77db588b"
      },
      "execution_count": 107,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "  file_extension  file_count\n",
              "0            png   432569470\n",
              "1             js   287608650\n",
              "2              c   266333125\n",
              "3              h   246946220\n",
              "4            php    92146973\n",
              "5           java    59540270\n",
              "6            txt    52432375\n",
              "7           html    47859376\n",
              "8           json    42748551\n",
              "9            svg    41619467"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-9cc71a30-b3e1-47c1-91f1-12a9085f14ce\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>file_extension</th>\n",
              "      <th>file_count</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>png</td>\n",
              "      <td>432569470</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>js</td>\n",
              "      <td>287608650</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>c</td>\n",
              "      <td>266333125</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>h</td>\n",
              "      <td>246946220</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>php</td>\n",
              "      <td>92146973</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>java</td>\n",
              "      <td>59540270</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>txt</td>\n",
              "      <td>52432375</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>html</td>\n",
              "      <td>47859376</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>json</td>\n",
              "      <td>42748551</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>svg</td>\n",
              "      <td>41619467</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9cc71a30-b3e1-47c1-91f1-12a9085f14ce')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-9cc71a30-b3e1-47c1-91f1-12a9085f14ce button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-9cc71a30-b3e1-47c1-91f1-12a9085f14ce');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-1e88088f-7c0b-4542-9806-b660530fc013\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-1e88088f-7c0b-4542-9806-b660530fc013')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-1e88088f-7c0b-4542-9806-b660530fc013 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "  <div id=\"id_f4ab9709-aa7a-43ed-b59a-aaff10d95667\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('approx_top_10_extensions_df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_f4ab9709-aa7a-43ed-b59a-aaff10d95667 button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('approx_top_10_extensions_df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "approx_top_10_extensions_df",
              "summary": "{\n  \"name\": \"approx_top_10_extensions_df\",\n  \"rows\": 10,\n  \"fields\": [\n    {\n      \"column\": \"file_extension\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          \"json\",\n          \"js\",\n          \"java\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"file_count\",\n      \"properties\": {\n        \"dtype\": \"Int64\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          42748551,\n          287608650,\n          59540270\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 107
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "exact_top_10_extensions_df"
      ],
      "metadata": {
        "id": "9xRQTtLp5K_e",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 362
        },
        "outputId": "18eab703-12ec-409d-b7ca-89efcff07421"
      },
      "execution_count": 108,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "  file_extension  file_count\n",
              "0            png   432540779\n",
              "1             js   287564161\n",
              "2              c   266309899\n",
              "3              h   246919509\n",
              "4            php    92049161\n",
              "5           java    59475340\n",
              "6            txt    52420600\n",
              "7           html    47835975\n",
              "8           json    42702526\n",
              "9            svg    41563549"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-59a2e18c-e20d-46d2-8fd3-3d1e3a1f3d11\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>file_extension</th>\n",
              "      <th>file_count</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>png</td>\n",
              "      <td>432540779</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>js</td>\n",
              "      <td>287564161</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>c</td>\n",
              "      <td>266309899</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>h</td>\n",
              "      <td>246919509</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>php</td>\n",
              "      <td>92049161</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>java</td>\n",
              "      <td>59475340</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>txt</td>\n",
              "      <td>52420600</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>html</td>\n",
              "      <td>47835975</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>json</td>\n",
              "      <td>42702526</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>svg</td>\n",
              "      <td>41563549</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-59a2e18c-e20d-46d2-8fd3-3d1e3a1f3d11')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-59a2e18c-e20d-46d2-8fd3-3d1e3a1f3d11 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-59a2e18c-e20d-46d2-8fd3-3d1e3a1f3d11');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-f854cac6-04ae-4a32-bc00-c3cdd782e242\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-f854cac6-04ae-4a32-bc00-c3cdd782e242')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-f854cac6-04ae-4a32-bc00-c3cdd782e242 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "  <div id=\"id_e4902b06-79fe-4c68-bd95-4ae7fe57855e\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('exact_top_10_extensions_df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_e4902b06-79fe-4c68-bd95-4ae7fe57855e button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('exact_top_10_extensions_df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "exact_top_10_extensions_df",
              "summary": "{\n  \"name\": \"exact_top_10_extensions_df\",\n  \"rows\": 10,\n  \"fields\": [\n    {\n      \"column\": \"file_extension\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          \"json\",\n          \"js\",\n          \"java\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"file_count\",\n      \"properties\": {\n        \"dtype\": \"Int64\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          42702526,\n          287564161,\n          59475340\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 108
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Comparing file counts from topN extensions from both methods\n",
        "\n",
        "approx_top_10_extensions_df_2 = approx_top_10_extensions_df.rename(columns={'file_count': 'approx_file_count'})\n",
        "exact_top_10_extensions_df_2 = exact_top_10_extensions_df.rename(columns={'file_count': 'exact_file_count'})\n",
        "\n",
        "# Merge the DataFrames.\n",
        "comparision_df = exact_top_10_extensions_df_2.merge(approx_top_10_extensions_df_2, on=['file_extension'], how='outer')\n",
        "comparision_df.sort_values(by='exact_file_count', ascending=False)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 362
        },
        "id": "3ted0RBNlEJG",
        "outputId": "29b455ac-426a-4a9f-9ac6-29e26b7bfd31"
      },
      "execution_count": 109,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "  file_extension  exact_file_count  approx_file_count\n",
              "7            png         432540779          432569470\n",
              "4             js         287564161          287608650\n",
              "0              c         266309899          266333125\n",
              "1              h         246919509          246946220\n",
              "6            php          92049161           92146973\n",
              "3           java          59475340           59540270\n",
              "9            txt          52420600           52432375\n",
              "2           html          47835975           47859376\n",
              "5           json          42702526           42748551\n",
              "8            svg          41563549           41619467"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-85fdb2be-42d3-493a-ad73-ce17fc2d056e\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>file_extension</th>\n",
              "      <th>exact_file_count</th>\n",
              "      <th>approx_file_count</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>png</td>\n",
              "      <td>432540779</td>\n",
              "      <td>432569470</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>js</td>\n",
              "      <td>287564161</td>\n",
              "      <td>287608650</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>c</td>\n",
              "      <td>266309899</td>\n",
              "      <td>266333125</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>h</td>\n",
              "      <td>246919509</td>\n",
              "      <td>246946220</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>php</td>\n",
              "      <td>92049161</td>\n",
              "      <td>92146973</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>java</td>\n",
              "      <td>59475340</td>\n",
              "      <td>59540270</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>txt</td>\n",
              "      <td>52420600</td>\n",
              "      <td>52432375</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>html</td>\n",
              "      <td>47835975</td>\n",
              "      <td>47859376</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>json</td>\n",
              "      <td>42702526</td>\n",
              "      <td>42748551</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>svg</td>\n",
              "      <td>41563549</td>\n",
              "      <td>41619467</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-85fdb2be-42d3-493a-ad73-ce17fc2d056e')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-85fdb2be-42d3-493a-ad73-ce17fc2d056e button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-85fdb2be-42d3-493a-ad73-ce17fc2d056e');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-0e317946-0b38-49f9-a927-18fc11d147e0\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-0e317946-0b38-49f9-a927-18fc11d147e0')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-0e317946-0b38-49f9-a927-18fc11d147e0 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"comparision_df\",\n  \"rows\": 10,\n  \"fields\": [\n    {\n      \"column\": \"file_extension\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          \"json\",\n          \"js\",\n          \"java\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"exact_file_count\",\n      \"properties\": {\n        \"dtype\": \"Int64\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          42702526,\n          287564161,\n          59475340\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"approx_file_count\",\n      \"properties\": {\n        \"dtype\": \"Int64\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          42748551,\n          287608650,\n          59540270\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 109
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Comparing Query Stats\n",
        "\n",
        "This compares query stats like slot_sec, total query runtime, memory scanned etc for all the relevant queries above identified by query tags embedded in each sql query."
      ],
      "metadata": {
        "id": "8Xl4qVePqHKa"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "%%bigquery stats_df --project {project_id}\n",
        "DECLARE CURRENT_DT DATE DEFAULT CURRENT_DATE();\n",
        "\n",
        "SELECT\n",
        "  query_tag,\n",
        "  total_time_sec,\n",
        "  total_slot_sec,\n",
        "  total_MB_processed,\n",
        "  shuffle_output_MB,\n",
        "  cache_hit,\n",
        "  creation_time\n",
        "FROM (\n",
        "  SELECT *\n",
        "  FROM (\n",
        "    SELECT\n",
        "      REGEXP_EXTRACT(query, r'/\\* QUERY_TAG<(.*?)> \\*/') AS query_tag,\n",
        "      (TIMESTAMP_DIFF(end_time, start_time, MILLISECOND)/1000) as total_time_sec,\n",
        "      (total_slot_ms/1000) as total_slot_sec,\n",
        "      (total_bytes_processed/pow(1024,2)) AS total_MB_processed,\n",
        "      (SELECT SUM(stage.shuffle_output_bytes) FROM UNNEST(job_stages) stage)/pow(1024,2) AS shuffle_output_MB,\n",
        "      cache_hit,\n",
        "      creation_time\n",
        "    FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT\n",
        "    WHERE state='DONE'\n",
        "    AND DATE(creation_time) = CURRENT_DT\n",
        "    AND creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 5 MINUTE) AND CURRENT_TIMESTAMP()\n",
        "    AND query LIKE \"%QUERY_TAG%\")\n",
        "  WHERE query_tag IS NOT NULL\n",
        "  QUALIFY ROW_NUMBER() OVER (PARTITION BY query_tag ORDER BY creation_time DESC) = 1)\n",
        "ORDER BY query_tag ASC;\n"
      ],
      "metadata": {
        "id": "pJflzjdmM9tf",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 81,
          "referenced_widgets": [
            "5e5b99c3c05d4695bcec5e707a98f96e",
            "c7d6c8a6d0874d41984869101d2a174c",
            "0237eb0cbbf74dd083b3cb99cdde0893",
            "cc22edea9f1948f9ac763529b1dd4744",
            "7053184f69584b79808f01ceec358199",
            "a7a50da4b1a5427892a34da539d0d280",
            "7023b60802ba489bbfa47ff3bd6c9993",
            "9ccca867bc304112b72036b16120ac9d",
            "b6e8e4bedf7b49bf90ea6b084d09229f",
            "b04bea9ec98745fea673260322183507",
            "16da988076f943128e35a5cd0f281217",
            "f4d48e03913d406a92abee3a9f166afa",
            "6f0ee088f4944e9780ced95a818a9583",
            "95149f8127b24a88ae4e56552c24edca",
            "2043df89941b4ff49d9bc54f1ddc742d",
            "5bf5025d914f435588834c5cadecd59d",
            "66b08021e418420fac36d7f4ca40aa70",
            "3615882fe7704e26ae08c686b892e958",
            "9311eeb06cbf4cda8234b30564214ace",
            "7ae4a05609ce451295b6ec514a72bb02",
            "7ca757a5b49c4eab976dba82ee487758",
            "6a250e180c404464b3d291511337b32d"
          ]
        },
        "outputId": "88eea2e6-0b76-4947-99e1-10123efdd5c6"
      },
      "execution_count": 110,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Query is running:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "5e5b99c3c05d4695bcec5e707a98f96e"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          |"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "f4d48e03913d406a92abee3a9f166afa"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#@title Plot charts for comparing exact and approx methods\n",
        "prefix_list = ['(01)', '(02)']\n",
        "plot_query_metrics(stats_df, prefix_list)"
      ],
      "metadata": {
        "id": "itdeMy9tlL_o",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 593
        },
        "outputId": "a305c956-afa3-43c3-8322-7a1eb31af596"
      },
      "execution_count": 111,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 2000x600 with 3 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAB1IAAAJuCAYAAAAKMEDnAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA2ylJREFUeJzs3Xl4TOf7x/FPJmSxJLYkxC5qLaL2XUubWmuropVQRSuqlaJ8+7Wr0JRSUlqtrbT2peWr1Fa7Wmpr7bXUmiAkQoLM+f3hl6nJQsLEJPJ+XVeuyzznmefcMzmZuZ37PM9xMAzDEAAAAAAAAAAAAADAwmTvAAAAAAAAAAAAAAAgvaGQCgAAAAAAAAAAAAAJUEgFAAAAAAAAAAAAgAQopAIAAAAAAAAAAABAAhRSAQAAAAAAAAAAACABCqkAAAAAAAAAAAAAkACFVAAAAAAAAAAAAABIgEIqAAAAAAAAAAAAACRAIRUAAAAAAAAAAAAAEqCQCqSxjRs3ysHBQRs3brTZmMWKFVOXLl1sNl5m5uDgoGHDhj3xOMOGDZODg4OuXLny5EEBAIAMLS3yv4woI7wPtsoFbaVhw4Z6/vnn7R0GAAB4yjJC3oQnk5LzuadPn5aDg4M+//zzpxMUgBShkIpnkoODQ4p+UpKcjB49WsuWLUvzmCXp4MGDateunYoWLSoXFxcVLFhQL7/8siZNmmST8S9cuKBhw4Zp37596SYmpJ5hGPr+++9Vv3595cqVS9myZVOFChU0atQo3bp1y97hPZYuXbqk6G+WCwgAAMnJiPnfzJkzHxrrjh070jwGW/jqq680c+ZMe4ch6dHvafxPsWLF7B2q3UVHR2vkyJGqWLGismXLJnd3d9WrV0/ff/+9DMOwd3iPpVixYin6/aeX4xUAYF8ZPX/csmVLou2GYahw4cJycHBQ8+bNrbYlfF3Zs2dXuXLlUnw+KWGe5eLiolKlSql37966fPmyzV4jnp4///xTb731lgoWLChnZ2d5e3vrrbfe0l9//WXv0B5L/AUJKfkBUiOLvQMA0sL3339v9Xj27Nn69ddfE7WXLVv2kWONHj1a7dq1U6tWrWwZYiLbtm3Tiy++qCJFiqh79+7Knz+//vnnH+3YsUMTJ07U+++//8T7uHDhgoYPH65ixYrJ19c3XcSE1ImLi1OnTp20YMEC1atXT8OGDVO2bNm0efNmDR06VAsWLNDatWvl6elp71BTpWfPnmrcuLHl8alTpzRkyBD16NFD9erVs7T7+PjYIzwAQAaQEfO/eCNGjFDx4sUTtZcsWfKp7P9JffXVV8qXL1+iC57q16+v27dvy8nJ6anFUr9+/US/83feeUfVq1dXjx49LG05cuSQJN2+fVtZsmS+/xZfvnxZjRo10uHDh9WhQwf17t1bMTExWrx4sfz9/fXLL7/o+++/l8mUsa69njBhgm7evGl5/L///U8//vijvvjiC+XLl8/SXrt2bXuEBwBIZzJy/uji4qIffvhBdevWtWr/7bffdO7cOTk7Oyf5vJdffln+/v6SpJs3b2rz5s0aPHiw9u/fr4ULF6Zo3/G5a0xMjLZs2aIpU6bof//7nw4dOqRs2bI92QvDU7NkyRJ17NhRefLkUbdu3VS8eHGdPn1a3333nRYtWqT58+frtddes3eYqVK2bNlEf7+DBg1Sjhw59Mknn9gpKjwLMt//GJEpvPXWW1aPd+zYoV9//TVRe3ry6aefyt3dXbt27VKuXLmstoWFhRETJEmfffaZFixYoH79+ikkJMTS3qNHD7Vv316tWrVS165dtXLlyqca171792Q2mx/7RGmtWrVUq1Yty+Pdu3dryJAhqlWrVrr+uwUApB8ZMf+L16RJE1WtWtXeYdicyWSSi4vLU91niRIlVKJECau2d999VyVKlEjyWHja8aUXAQEBOnz4sJYuXaqWLVta2vv06aP+/fvr888/l6+vr/r37/9U44qOjlb27Nkf+/kJT15funRJP/74o1q1asUsZABAIhk5f2zatKkWLlyoL7/80uqisB9++EFVqlRJ9tZTpUqVsnp97777ru7cuaMlS5YoJiYmRbnRg7nrO++8o7x582r8+PFavny5OnbsmORznvQ7HrZ18uRJde7cWSVKlNCmTZvk4eFh2fbBBx+oXr16euutt3TgwIEkL/hMS7du3XrsgryXl1eiv98xY8YoX758GeLvGulXxrq8FLCh6OhoffTRRypcuLCcnZ1VunRpff7551bLWDk4OCg6OlqzZs1KtLTomTNn1KtXL5UuXVqurq7KmzevXn/9dZ0+ffqx4jl58qTKly+fqGApKUWzC//++2+9/vrrypMnj7Jly6aaNWtaFdM2btyoatWqSZK6du2aomWtUhvTnDlzVKVKFbm6uipPnjzq0KGD/vnnn0T9du7cqaZNmyp37tzKnj27KlasqIkTJ1r1Wb9+verVq6fs2bMrV65ceu2113T48GGrPvH3JT1x4oS6dOmiXLlyyd3dXV27dk20JElsbKz69u0rDw8P5cyZUy1bttS5c+cSxRYVFaUPP/xQxYoVk7Ozszw9PfXyyy9r7969yb5PD7py5Yrat28vNzc35c2bVx988IFiYmIs2xs0aKBKlSol+dzSpUvLz88v2bFv376tkJAQlSpVSsHBwYm2t2jRQgEBAfrf//6n33//3dKe3L2/kro3w/Xr1/Xhhx9a/i5KliypsWPHymw2W/o8eL+GCRMmyMfHR87Ozvr999+VPXt2ffDBB4n2de7cOTk6OiYZd0odOHBAXbp0UYkSJeTi4qL8+fPr7bff1tWrVxP13bhxo6pWrSoXFxf5+Pjo66+/thwvAIDMK73lfyk1dOhQmUwmrVu3zqq9R48ecnJy0v79+y1tO3fu1Kuvvip3d3dly5ZNDRo00NatWxONef78eXXr1k3e3t5ydnZW8eLF9d577+nOnTuSlOz3ZvySbvGvuVixYvrzzz/122+/Wd6vhg0bSkr+Xl8LFy605IzxJzXOnz9v1adLly7KkSOHzp8/r1atWilHjhzy8PBQv379FBcXl9q3MFkJ86T4133s2DG99dZbcnd3l4eHhwYPHizDMPTPP//otddek5ubm/Lnz69x48YlGjM2NlZDhw5VyZIl5ezsrMKFC2vAgAGKjY1NcVx79uxR7dq15erqquLFi2vq1KmWbTdv3nyinGvHjh1avXq1unTpYlVEjRccHKznnntOY8aM0e3btyUl/7uMzwsT/p/iyJEjateunfLkySMXFxdVrVpVP/30k1Wf+GPpt99+U69eveTp6alChQppw4YNcnBw0NKlSxPF9sMPP8jBwUHbt29P9vU9yvLly9WsWTPLse/j46ORI0cmeVyFhoaqRIkScnV1VfXq1bV582Y1bNjQcowDAJ596TV/7Nixo65evapff/3V0nbnzh0tWrRInTp1StVY+fPnl4ODw2Ov0vHSSy9Jur+6mPRvHnfy5Ek1bdpUOXPm1JtvvikpZe9nvDlz5qh69erKli2bcufOrfr162vNmjVWfVatWmU5f5gzZ041a9ZMf/75p1WfS5cuqWvXripUqJCcnZ1VoEABvfbaa1a/g927d8vPz0/58uWz5F9vv/221Thms1kTJkxQ+fLl5eLiIi8vL/Xs2VMRERFW/QzD0KhRo1SoUCFly5ZNL774YqKYUuKLL75Q0aJF5erqqgYNGujQoUOWbTNmzJCDg4P++OOPRM8bPXq0HB0dE+XXDwoJCdGtW7f0zTffWBVRJSlfvnz6+uuvdfPmTatJHF26dEnywrTk/t+QkvPEDRs21PPPP689e/aofv36ypYtm/7zn/8oICBA+fLl0927dxON+8orr6h06dLJvrZHuXPnjoYMGaIqVarI3d1d2bNnV7169bRhw4ZEfa9evarOnTvLzc1NuXLlUkBAgPbv38+tIjIhZqQiUzIMQy1bttSGDRvUrVs3+fr6avXq1erfv7/Onz+vL774QtL9JT4SLgUWv7Torl27tG3bNnXo0EGFChXS6dOnNWXKFDVs2FB//fVXqq+cKVq0qLZv365Dhw7p+eefT9VzL1++rNq1a+vWrVvq06eP8ubNq1mzZqlly5ZatGiRWrdurbJly2rEiBGJlkt92LJWqYnp008/1eDBg9W+fXu98847Cg8P16RJk1S/fn398ccflmLsr7/+qubNm6tAgQL64IMPlD9/fh0+fFgrVqywnAxau3atmjRpohIlSmjYsGG6ffu2Jk2apDp16mjv3r2JvrTbt2+v4sWLKzg4WHv37tW3334rT09PjR071tLnnXfe0Zw5c9SpUyfVrl1b69evV7NmzRK9jnfffVeLFi1S7969Va5cOV29elVbtmzR4cOH9cILLzzyd9G+fXsVK1ZMwcHB2rFjh7788ktFRERo9uzZkqTOnTure/fuid7TXbt26dixY/rvf/+b7NhbtmxRRESEPvjgg2STW39/f82YMUM///yzqlev/sh4H3Tr1i01aNBA58+fV8+ePVWkSBFt27ZNgwYN0sWLFzVhwgSr/jNmzFBMTIx69OghZ2dnFSlSRK1bt9b8+fM1fvx4OTo6Wvr++OOPMgzDkjg/jl9//VV///23unbtqvz58+vPP//UN998oz///FM7duywJG1//PGHXn31VRUoUEDDhw9XXFycRowYkSgxBABkLukx/4t348aNRLMGHBwclDdvXknSf//7X/3888/q1q2bDh48qJw5c2r16tWaNm2aRo4cablIa/369WrSpImqVKliKb7OmDFDL730kjZv3mzJDS5c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Ll1q9fyUnidOiY4dO8rBwUEffPCB/v777xSdP32UpPLBnTt3Wp1Xl+4fY3fv3rXK681mc6Jzv8gcmJGKTKlFixZ68cUX9cknn+j06dOqVKmS1qxZo+XLl+vDDz+0updmlSpVtHbtWo0fP17e3t4qXry4atSooebNm+v777+Xu7u7ypUrp+3bt2vt2rXKmzfvY8X0/vvv69atW2rdurXKlCmjO3fuaNu2bZo/f76KFSuW6KbbDxo4cKB+/PFHNWnSRH369FGePHk0a9YsnTp1SosXL7YspeHj46NcuXJp6tSpypkzp7Jnz64aNWoke4PulMbk4+OjUaNGadCgQTp9+rRatWqlnDlz6tSpU1q6dKl69Oihfv36yWQyacqUKWrRooV8fX3VtWtXFShQQEeOHNGff/5pKeCFhISoSZMmqlWrlrp166bbt29r0qRJcnd317Bhw1L93vr6+qpjx4766quvdOPGDdWuXVvr1q1LdAVRVFSUChUqpHbt2qlSpUrKkSOH1q5dq127dlldOfgwp06dUsuWLfXqq69q+/btmjNnjjp16pQoGa1cubKef/55LVy4UGXLltULL7yQovEHDBigffv2aezYsdq+fbvatm0rV1dXbdmyRXPmzFH58uU1c+ZMq+e88847evfdd9W2bVu9/PLL2r9/v1avXp3oRFT//v31008/qXnz5urSpYuqVKmi6OhoHTx4UIsWLdLp06dTfPKqU6dOGjBggJYuXar33nsv0f0PUsvNzU3169fXZ599prt376pgwYJas2ZNotkDkjRs2DCtWbNGderU0XvvvWdJ0p9//nnt27fvieIAAGRc6TH/i7dq1SrLlfgPql27tkqUKKHDhw9r8ODB6tKli+UE2cyZM+Xr66tevXppwYIFMplM+vbbb9WkSROVL19eXbt2VcGCBXX+/Hlt2LBBbm5ulpNko0eP1po1a9SgQQP16NFDZcuW1cWLF7Vw4UJt2bJFuXLl0iuvvKIiRYqoW7du6t+/vxwdHTV9+nR5eHjo7NmzVnFWqVJFU6ZM0ahRo1SyZEl5enomeb+qrFmzauzYseratasaNGigjh076vLly5o4caKKFSumvn37PtH7mB507txZCxYs0LvvvqsNGzaoTp06iouL05EjR7RgwQKtXr36kUvheXt7a+zYsTp9+rRKlSql+fPna9++ffrmm28S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uqT7y7WNGTNGXbt2tXmAAAAAyFjMZrNOnDihsLCwRBfa1a9f305RAQAAwJ7c3d31ySef2DsMAACAVEl1IfXzzz9X/vz5NW7cOF28eFGSVKBAAfXv318fffSRzQMEAABAxrFjxw516tRJZ86ckWEYVtscHBwUFxdnp8gAAABgL7/88oty5MihunXrSpJCQ0M1bdo0lStXTqGhocqdO7edIwQAAEiaKdVPMJk0YMAAnT9/XtevX9f169d1/vx5DRgwwOq+qQAAAMh83n33XVWtWlWHDh3StWvXFBERYfm5du2avcMDAACAHfTv31+RkZGSpIMHDyooKEhNmzbVqVOnFBQUZOfoAAAAkpfqGakPcnNzs1UcAAAAeAYcP35cixYtUsmSJe0dCgAAANKJU6dOqVy5cpKkxYsXq0WLFho9erT27t2rpk2b2jk6AACA5KV6Rurly5fVuXNneXt7K0uWLHJ0dLT6AQAAQOZVo0YNnThxwt5hAAAAIB1xcnLSrVu3JElr167VK6+8IknKkyePZaYqAABAepTqGaldunTR2bNnNXjwYBUoUEAODg5pERcAAAAyoPfff18fffSRLl26pAoVKihr1qxW2ytWrGinyAAAAGAvdevWVVBQkOrUqaPff/9d8+fPlyQdO3ZMhQoVsnN0AAAAyUt1IXXLli3avHmzfH190yAcAAAAZGRt27aVJL399tuWNgcHBxmGIQcHB8XFxdkrNAAAANjJ5MmT1atXLy1atEhTpkxRwYIFJUmrVq3Sq6++aufoAAAAkpfqQmrhwoVlGEZaxAIAAIAM7tSpU/YOAQAAAOlMkSJFtGLFikTtX3zxhR2iAQAASLlUF1InTJiggQMH6uuvv1axYsXSICQAAABkVEWLFrV3CAAAAEhn9u7dq6xZs6pChQqSpOXLl2vGjBkqV66chg0bJicnJztHCAAAkDRTap/wxhtvaOPGjfLx8VHOnDmVJ08eqx8AAABkbidPntT777+vxo0bq3HjxurTp49Onjxp77AAAABgJz179tSxY8ckSX///bc6dOigbNmyaeHChRowYICdowMAAEjeY81IBQAAAJKyevVqtWzZUr6+vqpTp44kaevWrSpfvrx+/vlnvfzyy3aOEAAAAE/bsWPH5OvrK0lauHCh6tevrx9++EFbt25Vhw4dON8IAADSrVQXUgMCAtIiDgAA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NbVx40YVLVrUWyUDAIAc6pafkTpmzBhJUnR0tI4dOyZJqlixokJCQtxbGQAAAHKchg0bavHixRo3bpyk64+FsFqtmjx5skNnFwAAAHC7GjduLJvNluU+AwcOZClfAABwx245SL18+bIGDhyoxYsXy2q1SpJ8fHzUs2dPzZw5M8MZCDmB1Wq1fx53MSrrGzrgTrj7fAWAnIxrYvYxefJkNW3aVHv27FFSUpJef/11HTp0SBcuXNB3333n7fIAAAAAt6E/ETkN/3YGgBtcvSbecpD62muvafv27fr888/16KOPSpJ27typV155Rf/+9781Z86cW23SKywWiywWi1JSUiRdn2GbmJjo1mNUDubGB54TFRXl7RIAINuIi4vzdgn4f1WrVtWvv/6qWbNmqUCBAoqPj1enTp1kNptVvHhxb5cHAAAA3Db6E5HT0Z8IADe42p9osN1sHQwnRYoU0apVq9S4cWOH7du2bVOXLl0UHR19K815XWxsrEwmky5evKigoCC3tn3ff750a3tAWifebu3tEgAg24iNjVVwcLBiYmLc/vsc967U+0RPnFdlh3/h1vaAtP6Y2MbbJQBAtuHJ3+dw3fnz51W4cGFJ0qlTpzR37lxduXJF7du3V8OGDb1c3a2jPxE5Ff2JAHCDq/2Jt7W0b0YPZg8NDdXly5dvtblsw2g0ymg0urVNqwxubQ9Iy93nKwDkZFwTs5fExET9/PPPioqKSrdMSvv27b1UFQAAAO62X375Re3atdOpU6d0//33a9myZXryySeVkJAgo9GoadOmadWqVerQoYO3S70t9Ccip+HfzgBwg6vXxFsOUuvXr68xY8Zo8eLF8vf3lyRduXJFY8eOVf369W+1OQAAAOQiGzduVM+ePXXu3Ll07xkMBvsyaAAAAMj9Xn/9dVWrVk0RERFasmSJ2rZtqzZt2mju3LmSpEGDBmnixIk5NkgFAAC53y0Hqe+9955atmypkiVLqkaNGpKkAwcOyN/fX1999ZXbCwQAAEDOMWjQID3zzDMaPXp0hquYAAAA4N7x448/auvWrapevbpq1KihDz/8UAMGDLDPABk0aJDq1avn5SoBAAAyd8tBatWqVXX8+HFFRETo6NGjkqTu3burR48eypcvn9sLBAAAQM5x9uxZhYeHE6ICAABAFy5cULFixSRJgYGBCggIUHBwsP394OBg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7dvfza8BAAAALlq2bJn27dunH3/80aX9K1asqPnz56t69eqKiYnRu+++qwYNGujQoUMqWbJkuv0TExM1bNgwde/eXUFBQe4uH8h1WrVqpVatWmX6/tSpU9W3b1/17t1bkvT+++/riy++0Pz58zV8+HCHfYsWLaoaNWro22+/VefOnTNs7+rVq7p69ar9dWxsrCTJarXKarXe6cdxYBRLDMNz3H2+ArnZ//73P6WkpNhfHzx4UC1bttTTTz+tuLg4tWjRQtWrV9fXX38tSRo9erTatWunXbt2yWi8Poexbdu2uu+++/T1118rX758eu+999S2bVsdP35cxYoVy/C4f//9t8PrDRs2qG/fvurYsaOsVqv++ecfNWvWTF26dNGMGTMUGxur8PBw9erVSytXrvTQt5E7uXpNJEgFANxzdu3apaeeekpt2rSRdH2E2dKlS+1LPR0/flzff/+9Dh48qCpVqkiS5syZo2LFimnp0qV68cUXM2y3cePGDq8HDx6sRYsWaefOnfYgddeuXerVq5d93379+umDDz7QDz/8QJAKAACQDZ06dUqDBw/W5s2b5e/v79LP1K9fX/Xr17e/btCggSpXrqwPPvhA48aNc9g3OTlZXbp0kc1m05w5c9xaO3AvSkpK0t69ezVixAj7NqPRqGbNmmn37t2Srq9AlD9/fhUoUEAxMTHasWOHXn755UzbnDBhgsaOHZtue3R0tBITE91af+VgglR4TtpZ2QBuLjUQlaSVK1eqbNmyqly5sr744gv98ccf2rhxowoUKCBJeuedd1SpUiWtXr1ajz/+uM6fP6/jx49r8uTJ9tA0PDxcc+bM0c6dO/X444/f9Jipx3300UcVGBioqKgoLV26VD4+Pho9erSMRqOCg4P11ltv6YknntD//vc/lStXzkPfRu4TFxfn0n4EqQCAe06DBg304Ycf6tdff9UDDzygAwcOaOfOnZo6daok2Ucap+0oMxqN8vPz086dOzMNUtOy2WzaunWrjh07pkmTJjkce926derTp49KlCihb775Rr/++qumTZvm5k8JAAAAd9i7d6+ioqL08MMP27elpKRox44dmjVrlq5evSofH58s28iTJ48eeughnThxwmF7aoh68uRJbd26ldmogBucO3dOKSkpDs8llq7PPD169Kgk6eTJk+rXr59sNptsNpsGDRqkatWqZdrmiBEjFB4ebn8dGxurUqVK2ZdzdKcjFw1ubQ9IKzQ01NslADlSUlKS1qxZo9dee01FixZVvnz5ZDAYVLJkSfn5+UmSTCaTjEajDh06pM6dOyskJEQVK1bU+vXr1bRpU/n5+WnJkiUKDQ1V06ZNFRwcfNPjnj17Vlu2bNGCBQvsf3/9/Pzk7+/vMKM1daWEI0eOqG7duh74BnInVwdJEqQCAO45w4cPV2xsrCpVqiQfHx+lpKRo/Pjx6tGjhySpUqVKKl26tEaMGKEPPvhAAQEBmjZtmv766y+dPn06y7ZjYmL0r3/9y96hNnv2bDVv3tz+/syZM9WvXz+VLFlSvr6+MhqNmjt3bqaj0AAAAOBdTZs21S+//OKwrXfv3qpUqZKGDRt20xBVuh68/vLLL2rdurV9W2qIevz4cW3btk2FCxd2e+0AMlanTh3t37/f5f39/PzsHeVpGY3GdDOH7pRVBKnwHHefr8C9Yt26dbp06ZJ69+4to9GoBg0aKCAgQCNGjNDbb78tm82m4cOHKyUlRWfOnLH/Xfv666/VoUMHe8gaGhqqjRs3unzft2TJEhUoUECdO3e2t9m0aVP9+9//1pQpUzR48GAlJCToP//5j6TrwSt/z13n6neV47/RU6dOqXHjxnrwwQdVvXp11oAGANzUihUrFBERoU8++UT79u3TokWL9O6772rRokWSrs8YWL16tX799VcVKlRI+fPn17Zt29SqVaub/oItUKCA9u/frx9//FHjx49XeHi4vvnmG/v7M2fO1Pfff69169Zp7969mjJlisxms/15CgAAAMheChQooKpVqzr8CQgIUOHChVW1alVJUs+ePR2WEX3zzTe1adMm/f7779q3b5+ee+45nTx50r6ySXJysjp37qw9e/YoIiLC3ul25swZJSUleeVzArlFkSJF5OPjo7NnzzpsP3v2bKbPowMAICsfffSRWrVqpRIlSkiSQkJCtHLlSn3++ecKDAyUyWTSpUuX9PDDD9v7Dm02m8xms0JDQ/Xtt9/qhx9+UIcOHdSuXbubTtRINX/+fPXo0cNh5mSVKlW0aNEiTZkyRfnz51exYsVUrlw5FS1alBDVQ3L8jFRfX19Nnz5dNWvW1JkzZ1SrVi21bt1aAQEB3i4NAJBNDR06VMOHD1e3bt0kSdWqVdPJkyc1YcIE9erVS5JUq1Yt7d+/XzExMUpKSlJISIjq1q2r2rVrZ9m20WjUfffdJ0mqWbOmjhw5ogkTJqhx48a6cuWK/vOf/2jNmjX257NWr15d+/fv17vvvqtmzZp58FMDAADAU/7880+HjquLFy+qb9++OnPmjIKDg1WrVi3t2rVLDz74oCTp77//1rp16yRdv2dMa9u2bWrcuPHdKh3IdfLmzatatWppy5Yt6tChgyTJarVqy5YtGjhwoHeLAwDkOCdPntTXX3+t1atXO2xv0aKFfvvtN507d06+vr4qWLCgihUrpvLly0uStm7dqvXr1+vixYv2ZeBnz56tzZs3a9GiRRo+fHiWx/3222917NgxLV++PN17zz77rJ599lmdPXtWAQEBMhgMmjp1qv3YcK8cH6QWL15cxYsXlyQVK1ZMRYoU0YULFwhSAQCZunz5croRWj4+PrJaren2NZlMkqTjx49rz549Gjdu3C0dy2q12p+5mpycrOTkZJePDQAAgOwp7YojGb2eNm2apk2blunPly1bVjabzQOVAfeG+Ph4h2cOR0ZGav/+/SpUqJBKly6t8PBw9erVS7Vr11adOnU0ffp0JSQkqHfv3l6sGgCQE6U+nzR1UoSzIkWKSLoenEZFRal9+/aSrvc/SumXjzUajS71A3700UeqVauWatSokek+qc8Dnz9/vvz9/R0eLwb38XqQumPHDr3zzjvau3evTp8+rTVr1thHi6WyWCx65513dObMGdWoUUMzZ85UnTp10rW1d+9epaSkqFSpUnepegBATtSuXTuNHz9epUuXVpUqVfTTTz9p6tSp6tOnj32flStXKiQkRKVLl9Yvv/yiwYMHq0OHDmrRooV9n549e+pf//qXJkyYIEmaMGGCateurQoVKujq1av68ssvtWTJEs2ZM0eSFBQUpEaNGmno0KHKly+fypQpo+3bt2vx4sWaOnXq3f0SALjMarW6fbCDUXSew3MYnAMAN3BNzJ327NmjJk2a2F+Hh4dLknr16qWFCxeqa9euio6O1ujRo3XmzBnVrFlTGzdutHc4AwDgCqvVqgULFqhXr17y9XWM0xYsWKDKlSsrJCREu3fv1uDBg/Xaa6+pYsWKkqT69esrODhYvXr10ujRo5UvXz7NnTtXkZGRDqFspUqVNGHCBHXs2NG+LTY2VitXrtSUKVMyrGvWrFlq0KCBAgMDtXnzZg0dOlQT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N2/WP//8o7x586patWrq0qWL+vXrp3z58mVZp3R9IEuTJk20cuVKde7cWdL1ASu9e/fO9Pi7d+9WvXr1JF3/fffOO+/o008/VWRkpPz9/VWqVCk1atRIw4YNU4kSJVz6TAAAAHcTQSoAAAAytWDBArVv3z5dZ/SQIUNUvXp1bdq0yd7ZHRQUpLfffluDBw9WpUqVJEm1atXS+fPnVahQIa1atSrLGXQFCxZUixYttHDhQpeD1IcffljPPfdclvu8+OKLWrx4sYYMGaK2bduqcOHCioyM1JtvvqlOnTqpbdu26X4mMjJSu3bt0urVq/XSSy8pIiJCY8aMcdjn0qVL6tixo3x8fPTTTz/ZP3Oq8ePHa+7cuSpfvrzKly/v8F7//v1Vvnz5m9buKbcSLrjTtWvX1LFjR509e1bbt2/Xo48+6vD+mDFjtGnTJqWkpKT72YYNG9o7bSWpYsWKevnll7V48WK9/vrr9u1Lly7VlClT1LVrV0VERMjHx8f+XlhYmJo0aaJnnnlG+/btu+MwuVWrVqpdu7ak6+dZ4cKFNXXqVH322WfpBh84e+CBBxz+//fv319JSUlavXq1EhMTVb9+ffXv31/vvvuuevTooSpVqkiSPv30U33xxReaPXu2Q4CUkdTQacWKFfa/e6+88oquXr16S58zLCxMP/30k1atWqWnn37a4b1x48Zp5MiR9tffffedXn31VT322GPauHGjQ6D88ssv69FHH1Xnzp116NAhBQcH31IdzmrWrKn169dr3759evjhhzPcJzv+/bsX3emgnGHDhunChQt65plndP/99+v333/XrFmztH79eu3fv99hMMXtDMqRpI8//ljFihXTxYsXtWrVKr344osZ7leyZElNmDBBkhQdHa3FixfrhRde0K+//mpfDUGS/Pz8NG/ePEnXf198+umnGjJkiH788UctW7bMoc05c+YoMDBQCQkJ2rJli2bOnKl9+/Zp586dDvslJCSoTZs22r59u9q2bWsPbzdu3KjBgwdr9erV+uKLL+yz3IcOHaq3335bYWFhatSokb2d4cOHKzo6Whs2bLirIao3B/FIGQ++CgkJuaM2d+3apSZNmqh06dLq27evihUrplOnTun777/Xe++95xCkZiQiIkJhYWFq1qyZPURNlXbATVoPPPCAypQpk26QyIgRIxQYGOhwTU71xRdf6JlnnpGfn5969uypqlWrKikpSTt37tTQoUN16NAhffjhh7f5LVyXOrjIWepAtOTkZD3++OM6evSoevXqpUGDBik+Pl6HDh3SJ598oo4dOxKkAgCAbIkgFQAAABmKjIzUzz//rPDwcIfthw8f1uHDh2WxWBw6RAcMGKDx48dr1apV+u9//yvp+iycW9G8eXO9+uqrunDhggoVKnTnH0LXlxJ8//339dBDD2nIkCFasGCBBgwYIF9f30xn9EVERCg4OFht2rRR586dMwxSP/jgA/3999+KiIhIF6JKUtGiRe3fw51KnbWUOqskVeoskMjISPvSpHv27NHIkSO1d+9eJSQkqFixYmrSpInmz59v/zmDwaAxY8bYl1hMbf/48eN66623tHbtWtlsNnXq1EkWi8UhDLty5YqGDRumTz75RFevXlWTJk00Z84clSxZ0qHNjKxcuVIHDx7UxIkT04WoqVq0aOHSd9KwYUNJ12fYpDV27FgFBwfrww8/dAhRJalOnToaNmyYxowZo1WrVqlbt24uHctVTzzxhKZOnarIyMjb+vlixYrJYDDY/15NmDBBa9euVf/+/bVjxw4lJCTo1VdftYesN5MakDifN6mz4Vzxv//9T1988YX69u2bLkRNbevdd9+1vx43bpwMBoMWLVqUblZuhQoVNHnyZPXq1UsffPCBhg8f7nIdGRk0aJCGDBmiN954Q+vWrbujtuBZdzooZ+rUqXrsscccQr8nn3xSjRo10qxZs/TWW2/Zt9/OoBybzaZPPvlEzz77rCIjIxUREZFpkGoymRxC+JdeekkVK1bUrFmzNG7cOPuMUF9fX4f9BgwYoLp162r58uWaOnWqQ2DUuXNnFSlSxN5et27dtHz5cv3www+qU6eOfb/w8HBt375dM2fO1MCBA+3bX375ZVksFg0cOFBDhgyxh9CjRo3S8uXL9dJLL+nnn39W3rx5tXv3bn344Yd67bXXVLNmTZe+H3fx1iCeVK4MvrpV48ePl8lk0o8//phuBnFUVFSWP7ts2TL16tVLTzzxhD777LN034/zgBtnzu9NnDhRRYoUSbc9MjJS3bp1U5kyZbR161aHQThms1knTpxIt6z+7Ug7uCgja9eu1U8//aSIiAg9++yzDu8lJiY6rGwAAACQneTu9VsAAABw23bt2iVJ6WZ6/fTTT5KUrrOsRIkSKlmypP3921GrVi3ZbDb7sW/m8uXLOnfuXLo/zs9qrVKlioYMGaKFCxfqlVde0caNG/XWW2/pX//6V4btRkREqFOnTsqbN6+6d++u48eP68cff3TYZ926dcqXL5/DLElvi4qKUosWLfTHH39o+PDhmjlzpnr06GFftvBmunTpori4OE2YMEFdunTRwoULHZadlK7PTpw5c6Zat26tSZMmKV++fGrTxrXlo1OXYHVHR/Yff/whSQ6zGo8fP65jx47pqaeeUlBQUIY/lzq7J6MlC+9UaqhbuHDhm+6bmJhoP19PnjypTz75RIsWLdKzzz5rD5RMJpNmzJihnTt3at68eRo1apTOnj2rDz/8MMtlH1M1btxY5cqV05gxY3Tp0qXb+kypAaXzUssZuXz5srZs2aKGDRtmuoxm165d5efn55bvPygoSK+99po+//xz7du3747bg2ekDspp1qyZw/bUQTn9+vVLNyjHZrNp1apV9m2PP/54upmTjz/+uAoVKpThs5KbN2+unTt36sKFCy7V+N133+mPP/5Qt27d1K1bN+3YsUN//fWXSz+bP39+1atXTwkJCYqOjs50P6PRqMaNG0u6cf3KTEYDRf766y999NFHeuKJJxxC1FRms1lNmjTRvHnz7LX7+/trzpw5OnbsmCZMmKDk5GT169dPpUqV0ptvvnnTz/bGG29keK1JffZw2s+xZ88etWzZUkWKFFG+fPlUrly5dEG28zNSU9s/ceKEwsLCVLBgQZlMJvXu3VuXL192+NkrV67olVdeUZEiRVSgQAG1b99ef//9t9efu/rbb7+pSpUqGS7DHBoamunPrVixQs8995waN26sdevWeTRknjx5suLj4/XRRx9luJLBfffdp8GDB3vs+KlSz+eMBlL5+/tn+nsbAADA25iRCgAAgAwdPXpUktIFIqdPn5akDDvjihcvrn/++ee2j5m6BOfhw4czXHLX2ZgxY9LNFJUcn8eVKnVmzsyZM1WrVi2ZzeYM29y7d6+OHj2qmTNnSpIee+wxlSxZUhEREXrkkUfs+x05ckQPPPCA8ubN6/Ln87Rdu3bp4sWL2rRpk0PQnXa2VlYeeughffTRR/bX58+f10cffaRJkyZJkvbt26cVK1bo1Vdf1bRp0yRdDz169+6tAwcO3LT9o0ePqmDBgukC7ISEBF25csX+Om/evOk6VOPi4nTu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1tK2bVv99ttvLv0/94bg4GBVqFAhw+8KAAAgO2BpXwAAAGSofPnyqlq1qr7++mv16dPH4b133nlH7du3V4sWLdStWzcdPHhQs2bN0osvvpiu4zo1TDx06JAkacmSJdq5c6ek66FLWps3b9ajjz6qwoULu1Tjvn37MpwpV6FCBdWvX19xcXF65ZVX9NBDD+mVV16xv280GvX++++rbt26GjlypGbOnKl169YpLi4u3fPMUtWrV08hISGKiIhQ165dFRwcbH/uZM2aNfXcc8+pVq1a9rqWLl3qtkC4RYsWKl26tF544QUNHTpUPj4+mj9/vkJCQvTnn3/a91u0aJFmz56tjh07qkKFCoqLi9PcuXMVFBSk1q1b33EdtWrV0tNPP63p06fr/PnzqlevnrZv324Pkm+2jGaePHm0Zs0atWzZUo899pg6deqkhg0bKiAgQH///bfWrVunP//8U23atHGpnqFDh2rFihWaPn26Jk6cKEnq0aOHfvzxR7333ns6fPiwevTooeDgYO3bt0/z589X4cKFtWrVKodn+LVr104tWrTQa6+9ph9++EENGjTQ5cuXtW7dOn333Xd666230j3r8E79+uuv9nP38uXL+v7777Vo0SLdd999ev755++4/b59++rjjz/W6NGjtWfPHrVo0ULXrl3T2rVr9e233+rRRx/VwoUL1bBhw3R/v50tXrxYLVq0UKdOndSuXTs1bdpUAQEBOn78uJYtW6bTp0/r3XfflXR9Zt27776r8PBwVa9eXWFhYSpevLiOHj2quXPnymq16ssvv3RYVrRmzZp68cUX9d577+n48eNq3ry5pOvXgy+//FIvvviiS+Fy6rNSDxw4cNOAGHdP2kE51atXt29POyjnpZdess9KzGhQTkJCglq3bq2///5b27Zt0/3335/lMV0dlPPxxx+rfPny6Z7RKV0ffDJx4kRFRETosccec/nzukOPHj00atQoTZo0Sd26dZMklSpVSr1799a8efM0Z84cvfzyyw4/8/7772vr1q166aWX7LNfZ8yYoZ9++kmrV6+2z94dO3asVqxYof79+2vv3r1ZLtWadhBP6u/GzAbxFCxY0OF3gLsH8YwcOVKzZ8/WtGnT7NtdHcTjSdu2bVPjxo3T/f778ssvJaV//m2qPHnyaNWqVWrRooVeffVVBQcHu+Xan5HXX39dERERevHFF7V161YVLVrU4f3ffvtN69ev1+DBgz1y/FQHDhzQv/71r3QzxU+ePKnDhw9n+l0BAAB4G0EqAAAAMtWnTx+NHj1aV65ccXheW9u2bbV69WqNHTtWgwYNUkhIiP7zn/9o9OjR6doYNWqUw+v58+fb/zttkBoTE6NNmzalm+2YlaVLl2rp0qXptvfq1Uv169fXqFGj9M8//2j16tXplg6sXbu2BgwYoNmzZyssLEwRERHy9/e3hzjOjEaj2rRpo4iICJ0/f16FCxdW3bp1dfDgQb3zzjv64osvtGTJEhmNRlWuXFnDhw+3Lyl8p1IDyAEDBmjUqFEqVqyYveO1d+/e9v0aNWqkH374QcuWLdPZs2dlMplUp04dRUREpHu23O1avHixihUrpqVLl2rNmjVq1qyZli9frooVK2b5HMtUDzzwgPbv368ZM2ZozZo12rBhg5KSklS0aFHVrVtXY8aMcVj2NSu1a9dW48aNNWfOHI0YMUImk0mSNH36dDVp0kQWi0Vvv/22Ll++rFKlSslsNmv48OHpOnGNRqPWrVuniRMnatmyZVq9erV8fX1VrVo1ffzxx+rRo8etf1E3sXnzZm3evFnS9WUtixcvrhdffFHjxo1zSwjo7++vbdu26e2339ayZcu0YcMGBQUFqVGjRtq9e7ceeughNW3aVP3791eZMmWynHEbEhKiXbt2afbs2Vq+fLlGjhyppKQklSlTRu3bt0/X+f7aa6+pdu3amjJliqZPn66YmBgVL15czzzzjEaOHJnhMr0ffPCBqlWrpvnz52vEiBGSrgcQM2bMkNlsdukzFyxYUK+++irL+2Yz7hiU06NHD/3www/q06ePjhw5oiNHjtjfCwwMVIcOHRzadWVQzj///KNt27Y5DLJJy8/PTy1bttTKlSs1Y8YMh8EXnpYnTx4NHjxYQ4cO1caNG+0zTKdNm6ajR49qwIABDtu/+uorffbZZ2rUqJGmTJki6foyyKNHj1a7du3UsWNHe9sBAQF677331KlTJ7333nv697//nWkduWUQjycNGjRIly9fVseOHVWpUiUlJSVp165dWr58ucqWLevwO9pZ/vz59cUXX6hRo0bq06ePTCaTw2CutANu0ipatGim9yoZqVChgj755BN17dpVlStXVs+ePVW1alV7rStXrlRYWNgtfe6MbNiwQUePHk23vUGDBipfvrw2b96sMWPGqH379qpXr54CAwP1+++/a/78+bp69arHlzkGAAC4bTYAAADctitXrtgOHz5su3LlirdL8YhLly7ZChUqZJs3b57HjzVt2jRb8eLFbZcvX/b4seBeP/30k02S7eOPP/Z2KQCyoalTp9oCAwMzvL6vWbPGVrNmTZufn5+tZMmStv/+97+2pKQkh33KlCljk5ThnzJlyjjse+nSJVvevHlv+ntrypQpNkm2LVu2ZLrPwoULbZJsn332mc1ms9kaNWpkq1Klyk0/b69evWwBAQE33W/MmDE2Sbbo6Oh078XExNhMJpOtUaNGDtuvXr1qmzZtmq1WrVq2gIAAW/78+W0PP/ywbfr06Q7f21NPPWULCAiwnTx5MsNjt23b1hYYGGj7888/s6xx7969trp169ry5s1rK126tG3q1Km2BQsW2CTZIiMjbTabzbZv3z5b9+7dbaVLl7b5+fnZQkNDbW3btrXt2bPHoS1JtjFjxtz08zu3b7PZbAkJCTaz2WwrVKiQLTAw0NahQwfbsWPHbJJsEydOzPIzREZG2iTZ3nnnnSz3c/X/W1obNmyw9enTx1apUiVbYGCgLW/evLb77rvPNmjQINvZs2cd9i1TpoytTZs26do4c+aM7b777rP5+/vbtm3bZrPZbJme75LSnROpqlSpkul7NpvN9uuvv9r69u1rK1u2rC1v3ry2AgUK2B599FHbzJkzbYmJiTet02az2bZt22aTZFu5cqV9W+r/r8z+LFiwwGaz2Wy///67bfTo0bZ69erZQkNDbb6+vraQkBBbmzZtbFu3bs207qzk9vtwAACQPRhsNhcfQgQAAIB0EhMTFRkZqXLlyrk0Gy8nmjRpkhYsWKDDhw/LaDR65BjJycmqUKGChg8frgEDBnjkGHAP59nJkhQWFqYlS5bojz/+sD+HFgBSxcTEqHz58po8ebJeeOEFjx5r+vTpmjx5sn777bd01yrkLvv379dDDz3ksZUDkP3dC/fhAADA+whSAQAA7gAdOLjXjB07Vnv37lWTJk3k6+urDRs2aMOGDerXr58++OADb5cHIJtiUA7uBIN4kBHuwwEAwN1AkAoAAHAH6MDBvWbz5s0aO3asDh8+rPj4eJUuXVrPP/+8Ro4cKV9fX2+XBwDIhe72IJ74+HjFx8dnuU9ISEi656/j7uI+HAAA3A0EqQAAAHeADhwAAADPutuDeN544w2NHTs2y30iIyNVtmxZtx8bruM+HAAA3A0EqQAAAHeADhwAAIDc5ffff9fvv/+e5T6PPfYY935exn04AAC4G1h7CwAAAAAAAPh/5cuXV/ny5b1dBgAAALIBo7cLAAAAAAAAAAAAAIDshiAVAADADXhaAgAAAHD3cP8NAADuBoJUAACAO5AnTx5J0uXLl71cCQAAAHDvSEhIkMFgsN+PAwAAeALPSAUAALgDPj4+KliwoKKioiRJ+fPnl8Fg8HJVAAAAQO5js9l07do1xcbGKjY2VgULFpSPj4+3ywIAALmYwcY6GAAAAHfEZrPpzJkzunTpkrdLAQAAAHI9Hx8fhYaGymQyMYgRAAB4FEEqAACAm6SkpCg5OdnbZQAAAAC5lq+vr3x8fAhQAQDAXUGQCgAAAAAAAAAAAABOjN4uAAAAAAAAAAAAAACyG4JUAAAAAAAAAAAAAHBCkAoAAAAAAAAAAAAATghSAQAAAAAAAAAAAMAJQSoAAAAAAAAAAAAAOCFIBQAAAAAAAAAAAAAnBKkAAAAAAAAAAAAA4OT/AOhh1WDE0/MfAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#@title All query stats also includes sketch creation stats for historic and incremental sketch creation\n",
        "stats_df"
      ],
      "metadata": {
        "id": "eIBS-gMQildC",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 174
        },
        "outputId": "a4e94279-9f80-4fa7-f8a8-e313319a1a44"
      },
      "execution_count": 112,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                            query_tag  total_time_sec  total_slot_sec  \\\n",
              "0  (01) EXACT using GROUP BY & COUNT           67.512        5922.050   \n",
              "1      (02) APPROX using FI_SKETCHES            4.517          89.379   \n",
              "2         (03) CREATE_FI_SKETCHES_ALL          46.719        9902.325   \n",
              "3       (04) CREATE_FI_SKETCHES_1Repo           1.228          51.715   \n",
              "\n",
              "   total_MB_processed  shuffle_output_MB  cache_hit  \\\n",
              "0       124349.964524         366.459706      False   \n",
              "1          798.787409           0.046908      False   \n",
              "2       175790.103587        2822.954223      False   \n",
              "3       175790.103587           0.004370      False   \n",
              "\n",
              "                     creation_time  \n",
              "0 2025-03-13 19:01:36.225000+00:00  \n",
              "1 2025-03-13 19:03:39.133000+00:00  \n",
              "2 2025-03-13 19:02:45.846000+00:00  \n",
              "3 2025-03-13 19:03:33.492000+00:00  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-c3cae648-56e4-44ae-82cc-1cd228cada83\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>query_tag</th>\n",
              "      <th>total_time_sec</th>\n",
              "      <th>total_slot_sec</th>\n",
              "      <th>total_MB_processed</th>\n",
              "      <th>shuffle_output_MB</th>\n",
              "      <th>cache_hit</th>\n",
              "      <th>creation_time</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>(01) EXACT using GROUP BY &amp; COUNT</td>\n",
              "      <td>67.512</td>\n",
              "      <td>5922.050</td>\n",
              "      <td>124349.964524</td>\n",
              "      <td>366.459706</td>\n",
              "      <td>False</td>\n",
              "      <td>2025-03-13 19:01:36.225000+00:00</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>(02) APPROX using FI_SKETCHES</td>\n",
              "      <td>4.517</td>\n",
              "      <td>89.379</td>\n",
              "      <td>798.787409</td>\n",
              "      <td>0.046908</td>\n",
              "      <td>False</td>\n",
              "      <td>2025-03-13 19:03:39.133000+00:00</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>(03) CREATE_FI_SKETCHES_ALL</td>\n",
              "      <td>46.719</td>\n",
              "      <td>9902.325</td>\n",
              "      <td>175790.103587</td>\n",
              "      <td>2822.954223</td>\n",
              "      <td>False</td>\n",
              "      <td>2025-03-13 19:02:45.846000+00:00</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>(04) CREATE_FI_SKETCHES_1Repo</td>\n",
              "      <td>1.228</td>\n",
              "      <td>51.715</td>\n",
              "      <td>175790.103587</td>\n",
              "      <td>0.004370</td>\n",
              "      <td>False</td>\n",
              "      <td>2025-03-13 19:03:33.492000+00:00</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c3cae648-56e4-44ae-82cc-1cd228cada83')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-c3cae648-56e4-44ae-82cc-1cd228cada83 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-c3cae648-56e4-44ae-82cc-1cd228cada83');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-662c5bc7-39de-440d-bcbc-bd7d48a467d3\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-662c5bc7-39de-440d-bcbc-bd7d48a467d3')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-662c5bc7-39de-440d-bcbc-bd7d48a467d3 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "  <div id=\"id_d914caea-119f-4d2e-b840-734024aa76e9\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('stats_df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_d914caea-119f-4d2e-b840-734024aa76e9 button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('stats_df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "stats_df",
              "summary": "{\n  \"name\": \"stats_df\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"query_tag\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"(02) APPROX using FI_SKETCHES \",\n          \"(04) CREATE_FI_SKETCHES_1Repo\",\n          \"(01) EXACT using GROUP BY & COUNT \"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"total_time_sec\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 32.47504803178383,\n        \"min\": 1.228,\n        \"max\": 67.512,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          4.517,\n          1.228,\n          67.512\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"total_slot_sec\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 4810.174271184665,\n        \"min\": 51.715,\n        \"max\": 9902.325,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          89.379,\n          51.715,\n          5922.05\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"total_MB_processed\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 82563.6071239779,\n        \"min\": 798.7874088287354,\n        \"max\": 175790.10358715057,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          124349.9645242691,\n          798.7874088287354,\n          175790.10358715057\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"shuffle_output_MB\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1361.3952628440252,\n        \"min\": 0.0043697357177734375,\n        \"max\": 2822.954222679138,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.04690837860107422,\n          0.0043697357177734375,\n          366.4597063064575\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"cache_hit\",\n      \"properties\": {\n        \"dtype\": \"boolean\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          false\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"creation_time\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"2025-03-13 19:01:36.225000+00:00\",\n        \"max\": \"2025-03-13 19:03:39.133000+00:00\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"2025-03-13 19:03:39.133000+00:00\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 112
        }
      ]
    }
  ]
}